J'ai un problème Perl du type suivant :
$object1 = $ABC->Find('test1');
Je veux ensuite appeler un sous-programme appelé CheckResult
en Report.pm
:
$Report->CheckResult($object, "Finding the value");
Dans un autre cas, je veux savoir si une commande particulière a été exécutée, alors je fais quelque chose comme ça :
$Report->CheckResult($ABC->Command(100,100), "Performing the command");
Maintenant dans Report.pm
:
sub CheckResult {
my ($result, $information) = @_;
# Now, I need something like this
if ($result->isa('MyException')) {
# Some code to create the report
}
}
Comment utiliser la classe d'exception et comment vérifier si une exception est levée et, le cas échéant, effectuer la tâche nécessaire ?
Edita:
Pour l'instant, je dispose d'un module de ce type :
package MyExceptions;
use strict;
use warnings;
use Exception::Class (
'MyExceptions',
'MyExceptions::RegionNotFound' => {isa => 'MyExceptions'},
'MyExceptions::CommandNotExecuted' => {isa => 'MyExceptions'}
);
L'autre module est :
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;
L'utilisateur pourrait à son tour script quelque chose comme ceci :
$Report->CheckResult($ABC->Command(100,100), "Tapping Home");
Quelqu'un peut-il nous aider ? Désolé pour mon ignorance, je n'ai jamais fait d'exceptions.