2015-12-02 58 views
1

我有一個模塊,它使用 Carp::confess "<message here>"(假設這條語句在子程序B中)。根據我的解釋,該消息將被輸出到STDERR,並且應用程序應該在該點終止。但是應用程序不會終止。我在招供聲明前後發表了一份打印聲明,以確保招供聲明得到執行。 我甚至檢查了調用子例程的子例程A是否定義了一個eval {}塊來捕獲錯誤並不對其執行操作。但似乎並非如此。Perl鯉魚坦白沒有終止應用程序

有沒有其他的情況下,鯉魚::承認不會終止該計劃?對此我有點困惑。

感謝信

回答

0

eval BLOCKeval EXPRdo EXPR和XS代碼調用Perl代碼能夠捕捉異常的唯一的東西。

也可能是第一個引發異常,例如當die被嚴重覆蓋時。