home *** CD-ROM | disk | FTP | other *** search
/ isnet Internet / Isnet Internet CD.iso / prog / hiz / 09 / 09.exe / adynware.exe / perl / lib / exceptions.pl < prev    next >
Encoding:
Text File  |  1999-12-28  |  501 b   |  27 lines

  1.  
  2. sub catch {
  3.     package exception;
  4.     local($__code__, @__exceptions__) = @_;
  5.     local($__package__) = caller;
  6.     local($__exception__);
  7.  
  8.     eval "package $__package__; $__code__";
  9.     if ($__exception__ = &'thrown) {
  10.     for (@__exceptions__) {
  11.         return $__exception__ if /$__exception__/;
  12.     } 
  13.     &'throw($__exception__);
  14.     } 
  15.  
  16. sub throw {
  17.     local($exception) = @_;
  18.     die "EXCEPTION: $exception\n";
  19.  
  20. sub thrown {
  21.     $@ =~ /^(EXCEPTION: )+(.+)/ && $2;
  22.  
  23. 1;
  24.