簡體   English   中英

我怎么知道我的Haskell程序中可以拋出異常?

[英]How do I know where in my Haskell Program an Exception can be Thrown?

我正在開發一個1-10k線路的個人Haskell項目,我正在使用Pipes.Concurrent生成的工人內部使用各種IO庫,例如Network.HTTP.Conduit。

我剛剛意識到其中一些IO庫在邊緣情況下拋出異常。

有沒有辦法讓GHC給我關於未捕獲異常的編譯時警告? 找出庫可以拋出的異常的最佳方法是什么?

謝謝!

只是在2018年回答我自己的問題。希望這會隨着時間的推移而改善。

在編譯時,無法知道Haskell程序的哪些部分可以拋出異常。 有些庫選擇返回Either / Maybe monad來安全地處理邊緣情況,而其他庫則選擇拋出異常。

就個人而言,我認為這使得Haskell在生產中運行的吸引力降低了很多,特別是因為這些異常很少有堆棧跟蹤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM