Latest web development tutorials

penanganan kesalahan perl

program ini berjalan, selalu menghadapi berbagai kesalahan, seperti membuka file yang tidak ada.

Program ini berjalan akan berhenti jika terjadi kesalahan, kita perlu menggunakan beberapa metode untuk menghindari kesalahan deteksi, sehingga mencegah keluar program.

Perl menyediakan kesalahan multi-processing yang dibuat dalam metode, maka kita diperkenalkan satu per satu.


jika pernyataan

jika pernyataan dapat menentukan nilai kembali dari pernyataan, contoh adalah sebagai berikut:

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

Program variabel $! Kembali pesan kesalahan. Kami juga dapat menyederhanakan kode di atas dengan kode berikut:

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

kecuali fungsi

kecuali fungsi dan jika sebaliknya, hanya ketika ekspresi mengembalikan false akan dilaksanakan sebagai berikut:

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

kecuali pernyataan ketika Anda ingin mengatur kesalahan pengingat sangat berguna.Apa yang saya dapat juga disingkat sebagai kode di atas:

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

Pesan error di atas hanya ketika keadaan akan mengubah output kesalahan direktori.


operator ternary

Berikut ini adalah contoh sederhana dari operator ternary:

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

Contoh di atas kita menggunakan operator ternary untuk menentukan nilai hash ada.

Contoh termasuk ekspresi dari dua nilai, formatini :? A nilai ekspresi: Nilai II.


memperingatkan fungsi

memperingatkan fungsi digunakan untuk memicu pesan peringatan, tidak ada operasi lain, output ke stderr (file standar output), biasanya digunakan untuk meminta pengguna:

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

fungsi die

Fungsi die mirip dengan memperingatkan, tapi itu akan menjadi jalan keluar. Biasanya dengan suara keras keluaran pesan error:

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

modul Carp

Dalam naskah Perl, metode yang umum digunakan adalah dengan menggunakan laporan kesalahan memperingatkan () atau mati () berfungsi untuk menghasilkan laporan atau kesalahan. Untuk modul Carp, yang dapat menghasilkan pesan untuk memberikan tingkat tambahan kontrol, terutama di dalam modul.

Modul Carp standar menyediakan memperingatkan () dan mati () fungsi alternatif, mereka memberikan informasi lebih dalam penyediaan posisi yang salah, dan lebih ramah. Ketika digunakan dalam modul, pesan kesalahan berisi nama modul dan nomor baris.

fungsi ikan mas

Fungsi ikan mas dapat keluaran pelacakan informasi tentang program, mirip dengan memperingatkan fungsi biasanya akan mengirimkan informasi ke stderr:

package T;

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

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

Dalam script panggilan prosedur berikut:

use T;
function();

Program di atas, output adalah:

Error in module! at test.pl line 4

fungsi keok

keok () dan memperingatkan () mirip, disediakan kesalahan di stack kembali jejak.

package T;

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

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

Dalam script panggilan prosedur berikut:

use T;
function();

Program di atas, output adalah:

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

fungsi parau

parau () dan mati (), seperti dapat menyelesaikan naskah.

package T;

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

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

Dalam script panggilan prosedur berikut:

use T;
function();

Program di atas, output adalah:

Error in module! at test.pl line 4

fungsi mengaku

mengaku () dan mati () adalah serupa, tetapi menawarkan dari kesalahan stack kembali jejak.

package T;

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

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

Dalam script panggilan prosedur berikut:

use T;
function();

Program di atas, output adalah:

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