DBI
module предоставляющей PrintError
, RaiseError
и HandleError
параметров для настройки, как вы хотите обработки ошибок работать. Первые два являются только флагами, но HandleError
может быть настроен на ссылку подпрограммы, которая позволит вам точно написать, что вы хотите сделать в случае ошибки
Например, вы можете создать что-то вроде поведения RaiseError
написав
$dbh->{HandleError} = sub {
my ($msg, $dbh, $ret) = @_;
die $msg;
};
или вы могли бы аккумулировать список ошибок, которые возникают, как вы описываете, достаточно одного нажатия на массив. Что-то вроде этого, возможно,
my @errors;
$dbh->{HandleError} = sub {
my ($msg, $dbh, $ret) = @_;
push @errors, $msg;
};
Если вы хотите сообщение, выводимое на консоль, то вы можете warn $msg
в обработчике ошибок, или вы можете просто оставить PrintError
установить
Вы можете добавить метку времени каждый элемент, который вы нажимаете на массив, и это можно сделать что-то более сложное, используя параметр дескриптора базы данных $dbh
и $ret
, что возвращаемое значение неисправного DBI
метода
вы пытаетесь что и ... что происходит? Сценарий умирает? –
напечатайте эту ошибку: 1 на E: \ StatementJSON.pl строка 395. Я думаю, что или умереть только печатать на странице, она не может делать никаких действий. –
«1» вы видите, вероятно, количество элементов в '@ Error', что и возвращает' push'. Я не понимаю, в чем вопрос. Если вы не хотите, чтобы скрипт вышел, не вызывайте 'die'. –