[Moscow.pm] А как вы бросаете исключения?

Denis Evdokimov evdokimov.denis на gmail.com
Вт Авг 21 03:34:22 PDT 2012


От опечаток прекрасно спасают константы.

use Try::Tiny::MyErrors qw(:ALL);

try {
# ...
} catch {
  if($_ eq LOGIN_FAILED) {
    # ...
  } elsif($_ eq SOME_OTHER_ERROR) {
    # ...
  } else {
    die $_;
  }
};

А в Try::Tiny::MyErrors

....
my %const;
BEGIN {
    %const = map { $_, $_ } qw(
      LOGIN_FAILED
      SOME_OTHER_ERROR
    );
}
use constant \%const;
....

Ну или
use constant { LOGIN_FAILED => "Login or password incorect",
      SOME_OTHER_ERROR => "bla-bla-bla",
};
Информация об элементеАтрибутыПозицияДругиеРодительские элементыДочерние
элементы
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20120821/538cc8ff/attachment.html>


Подробная информация о списке рассылки Moscow-pm