如果BUILD方法失敗,我希望我的班級爆炸。但是,如果我使用croak來處理錯誤,則會從Class/MOP/Method.pm中報告錯誤,而不是調用者的代碼。 (也就是說,實例化對象的調用者。)IOW,croak在呼叫樹上沒有吠叫得足夠遠。 看哪: package Test;
use Moose;
use Carp 'croak';
sub BUILD {
croak 'u r
我正在嘗試編寫一個perl單元測試。我能夠測試它的快樂案例情景。但是,如果在方法中生成錯誤,則使用Carp:confess "<message>"打印錯誤。在我的測試中,我無法抓住這個案例。 我嘗試使用 dies_ok(<method call>, 'Expected Error'); 但測試用例仍然失敗。它打印傳遞給鯉魚::懺悔的消息,然後打印 Looks like your test exit
我有和Can't disable stack trace in Carp::croak() for some reason一樣的問題。因爲堆棧中的每個調用都被認爲是「安全」,所以每次打印完整的堆棧跟蹤。我想禁用某些電話。 下面是一個例子: use Carp;
sub this_may_fail {
# Some code...
croak "This call failed
我試着釣鯉魚警告: carp "$start is > $end" if (warnings::enabled());)
與eval {}但它沒有工作,所以我看了eval文檔中,我發現,這eval僅捕捉語法錯誤,運行時間錯誤或執行死亡陳述。 我怎麼能捕到鯉魚警告? #!/usr/bin/env perl
use warnings;
use strict;
use 5.012;
use