У меня есть проблема Perl следующего вида:
$object1 = $ABC->Find('test1');
Затем я хочу вызвать подпрограмму с именем CheckResult
in Report.pm
:
$Report->CheckResult($object, "Finding the value");
В другом случаеЯ хочу сообщить, была ли выполнена конкретная команда, поэтому я делаю что-то вроде этого:
$Report->CheckResult($ABC->Command(100,100), "Performing the command");
Теперь в Report.pm
:
sub CheckResult {
my ($result, $information) = @_;
# Now, I need something like this
if ($result->isa('MyException')) {
# Some code to create the report
}
}
Как использовать класс исключений и какпроверить, возникло ли исключение и, если это необходимо, выполнить задачу, необходимую?
Редактировать:
На данный момент у меня есть модуль такого типа:
package MyExceptions;
use strict;
use warnings;
use Exception::Class (
'MyExceptions',
'MyExceptions::RegionNotFound' => {isa => 'MyExceptions'},
'MyExceptions::CommandNotExecuted' => {isa => 'MyExceptions'}
);
Другой модуль:
package ReportGenerator;
use strict;
use warnings;
sub CheckResult {
my ($result, $info) = @_;
# Here is want to check of $result and throw an exception of the kind
# MyExceptions::RegionNotFound->throw(error => 'bad number');
# I'm not sure how to do this
}
1;
Пользователь, в свою очередь, написал бы что-то вроде этого:
$Report->CheckResult($ABC->Command(100,100), "Tapping Home");
Может ли кто-нибудь помочь?Извините за мое невежество, я вообще не делал исключений.