Cho dù die
là thích hợp ở giữa tập lệnh thực sự phụ thuộc vào những gì bạn đang làm. Nếu nó chỉ có hàng chục dòng, thì tốt thôi. Một công cụ nhỏ với vài trăm dòng, sau đó xem xét thú nhận (xem bên dưới). Nếu đó là một hệ thống hướng đối tượng lớn với nhiều lớp và mã được kết nối với nhau, thì có thể một đối tượng ngoại lệ sẽ tốt hơn.
thú nhận trong gói Carp:
Thường thì lỗi dẫn đến chết không nằm trên đường chết báo cáo. Thay thế chết bằng thú nhận (xem Gói cá chép) sẽ cung cấp dấu vết ngăn xếp (cách chúng tôi truy cập vào dòng này) hỗ trợ rất nhiều trong việc gỡ lỗi.
Để xử lý ngoại lệ từ nội trang Perl, tôi thích sử dụng autodie. Nó bắt lỗi từ open
và các cuộc gọi hệ thống khác và sẽ ném ngoại lệ cho bạn mà không phải thực hiện bit or die
. Các trường hợp ngoại lệ này có thể bị bắt với số eval { }
hoặc tốt hơn, bằng cách sử dụng Try::Tiny.
Đối với các cuộc thảo luận về ngoại lệ perl, hãy xem [Điều gì bị hỏng về ngoại lệ trong perl?] (Http://stackoverflow.com/questions/2165161/whats-broken-about-exceptions-in-perl), [Bạn có sử dụng lớp ngoại lệ trong các chương trình Perl của bạn? Tại sao hoặc tại sao không?] (Http://stackoverflow.com/questions/2439966/do-you-use-an-exception-class-in-your-perl-programs-why-or-why-not) và [ Xử lý ngoại lệ hướng đối tượng trong Perl - có đáng không?] (Http://stackoverflow.com/questions/503189/object-oriented-exception-handling-in-perl-is-it-worth-it) – Ether