Latest web development tutorials

Perl-Fehlerbehandlung

Das Programm läuft, stoßen immer eine Vielzahl von Fehlern, wie das Öffnen einer Datei, die nicht existiert.

Das Programm läuft wird beendet, wenn ein Fehler auftritt, müssen wir einige Methoden zu verwenden, Erfassungsfehler zu vermeiden, wodurch das Programm beendet zu verhindern.

Perl stellt eine Fehler multi-processing in dem Verfahren hergestellt, dann haben wir eine nach der anderen.


if-Anweisung

wenn die Anweisung kann den Rückgabewert der Anweisung bestimmen, sind die Beispiele wie folgt:

if(open(DATA, $file)){
   ...
}else{
   die "Error: 无法打开文件 - $!";
}

Programmvariable $! Eine Fehlermeldung zurückgegeben. Wir können auch den Code oben wie dem folgenden Code vereinfachen:

open(DATA, $file) || die "Error: 无法打开文件 - $!";

es sei denn, Funktion

es sei denn , Funktion und wenn im Gegenteil, wenn nur der Ausdruck false zurückgegeben wird wie folgt realisiert werden:

unless(chdir("/etc")){
   die "Error: 无法打开目录 - $!";
}

es sei denn , die Anweisung , wenn Sie eine Erinnerung Fehler einstellen wollen , ist sehr nützlich.Was kann ich auch als Code oben abgekürzt werden:

die "Error: 无法打开目录!: $!" unless(chdir("/etc"));

Die obige Fehlermeldung nur dann, wenn die Umstände Verzeichnis Fehlerausgang ändern wird.


Ternary Operator

Im Folgenden ist ein einfaches Beispiel eines ternären Operator:

print(exists($hash{value}) ? '存在' : '不存在',"\n");

Die oben genannten Beispiele, die wir den ternären Operator der Hash-Wert vorhanden ist, um zu bestimmen.

Beispiele enthalten einen Ausdruck von zwei Werten,wird das Format Ein Wert des Ausdrucks :?: Wert II.


warnen Funktion

warnen Funktion wird eine Warnmeldung ausgelöst, keinen anderen Betrieb, um die Ausgabe zu STDERR (Standard-Ausgabedatei), in der Regel verwendet, um den Benutzer aufzufordern:

chdir('/etc') or warn "无法切换目录";

Werkzeugfunktion

Werkzeug Funktion ist ähnlich zu warnen, aber es wird ein Ausgang sein. Normalerweise mit lauten Geräuschfehlermeldungen:

chdir('/etc') or die "无法切换目录";

Carp-Modul

In Perl-Skript, ist häufig verwendete Methode der Fehlerbericht warnen () oder die () Funktion zu verwenden, um Berichte oder Fehler zu erzeugen. Für das Carp-Modul, das Meldungen erzeugen können zusätzliche Kontrollebenen zu schaffen, vor allem im Inneren des Moduls.

Standard-Carp-Modul bietet eine warnen () und die () Funktion ist eine Alternative, sie mehr Informationen bei der Bereitstellung von falschen Positionierung sorgen, und freundlicher. Wenn in einem Modul verwendet wird, enthält die Fehlermeldung den Modulnamen und die Zeilennummer.

Karpfen-Funktion

Karpfen-Funktion können Informationen über das Programm, ähnliche Funktion zu warnen, werden in der Regel die Informationen an STDERR senden Ausgang Tracking:

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   carp "Error in module!";
}
1;

Im Skript ruft das folgende Verfahren:

use T;
function();

Das obige Programm, das Ausgabe ist:

Error in module! at test.pl line 4

cluck Funktion

gackern () und warnen () ist ähnlich, sofern der Fehler auf den Stapel zurück Spur.

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp qw(cluck);

sub function {
   cluck "Error in module!";
}
1;

Im Skript ruft das folgende Verfahren:

use T;
function();

Das obige Programm, das Ausgabe ist:

Error in module! at T.pm line 9
	T::function() called at test.pl line 4

quaken Funktion

quaken () und die (), als Skript beenden.

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   croak "Error in module!";
}
1;

Im Skript ruft das folgende Verfahren:

use T;
function();

Das obige Programm, das Ausgabe ist:

Error in module! at test.pl line 4

bekenne Funktion

beichten () und die () ist ähnlich, bietet aber aus dem Fehler des Stapels zurück Spur.

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   confess "Error in module!";
}
1;

Im Skript ruft das folgende Verfahren:

use T;
function();

Das obige Programm, das Ausgabe ist:

Error in module! at T.pm line 9
	T::function() called at test.pl line 4