Как отделить обработку исключений / обработку ошибок от бизнес-логики?
Я пишу код на Perl, а обработка ошибок / исключений и бизнес-логика усложняют понимание кода при просмотре.
Как я могу реорганизовать свой код, чтобы сделать его более читабельным, но при этом обрабатывать ошибки.
Также обратите внимание, что я не использую try catch или что-то в этом роде.
Один из наших старших программистов предложил, чтобы мы снова открыли стандартную ошибку ОС и записали там все, и мы могли ее перехватить.
Изменить: вот как я делаю обработку ошибок. У меня много модулей Perl ..
так check2.pm
package check2;
sub printData {
print STDERR "Error Message from sub routine \n";
}
1;
и я использую это так в моем скрипте Perl, check.pl
В моем Perl-скрипте
#!/usr/bin/perl
use LoadModules;
use strict;
use warnings;
load check2;
my $stderrholder;
local *SAVEERR;
# First, save existing STDERR
open SAVEERR, ">&STDERR" or print "not able to open";
close STDERR;
# Open the STDERR to a variable
open STDERR, ">", \$stderrholder or die "Failed to reopen STDERR $!\n";
#Start of processing
# Now print something to STDERR, redirected to $ stderrholder
print STDERR " Error Message from Main script \n";
check2::printData();
#End of processing
# Now close and restore STDERR to original condition.
close STDERR;
#open STDERR, ">&SAVEERR";
# Now check if there were any processing errors.
if(length($stderrholder)) {
print "\nProcessing errors\n" ;
if(length($stderrholder)) {
print "\nProcessing errors\n" ;
print $stderrholder;
} else {
print "\nNo Processing errors\n" ;
}
Буду очень признателен, если кто-нибудь поможет мне указать на ошибки в этом.