我有一個讀取配置的類。現在的問題是我不知道如何報告這個班的錯誤。如何報告駝鹿構造函數的錯誤?
使用die
是不夠的,因爲配置是參數化的,並且錯誤是常見的。
這種情況很複雜,我調用Moose
BUILD
方法中的讀函數。因爲這個用法在使用類時顯着提高了可讀性,所以我想保持這種方式。
我有一個讀取配置的類。現在的問題是我不知道如何報告這個班的錯誤。如何報告駝鹿構造函數的錯誤?
使用die
是不夠的,因爲配置是參數化的,並且錯誤是常見的。
這種情況很複雜,我調用Moose
BUILD
方法中的讀函數。因爲這個用法在使用類時顯着提高了可讀性,所以我想保持這種方式。
您可能想要查看Carp的croak()
函數。從它的文檔:因爲他們像 模具()或警告()
鯉魚程序是在你自己的模塊是有用的,但有消息這更可能是有用的 到你的模塊的用戶。在cluck,招供和longmess 的情況下,上下文是調用堆棧中每個調用的摘要。對於更短的消息,您可以使用鯉魚或呱呱聲來報告錯誤,因爲 來自您的模塊被調用的地方。
與Try::Tiny一起使用,您會得到一個比eval更好的,更靈活的描述性解決方案。例如,您不必擔心會導致$ @提供不良信息的邊緣案例。你的例外可以更準確地描述,也可以更詳細。通過鯉魚,你甚至可以讓你的cro叫行爲像坦白一樣,提供詳細的堆棧跟蹤,這使得更容易確切地看到問題的起源。
我想你需要定義「錯誤」才能得到有用的答案。施工過程中的錯誤應該防止施工,因此「死亡」是合適的。在這個問題中,你認爲什麼非錯誤條件是「錯誤」? – darch