use Fatal::Exception 'Exception::System' => 'open'; eval { open my $fh, '/notfound', 'r' }; print ref $@; # Exception::System eval { open my $fh, '/etc/passwd', 'badmode' }; print ref $@; # Exception::Fatal