4 types of Haskell exceptions:
- Checked+Impure: ExceptT
- Unchecked+Impure: IO
- Checked+Pure: Either
- Unchecked+Pure: BAD (not in type)
- エラー処理を書いてはいけない
- Haskell での例外処理
- Haskellでの例外処理(その2)
- Erin Swenson-Healey: A Beginner’s Guide to Exceptions in Haskell
- THE THREE KINDS OF HASKELL EXCEPTIONS AND HOW TO USE THEM
- Haskellの例外処理事情 - Qiita
- Capturing call stack with Haskell exceptions - Maxim Koltsov blog
Checked+Impure
- The exceptions package
- The errors package
- Exceptions Best Practices
- Lightweight Checked Exceptions in Haskell
- MonadMask vs MonadBracket :: FP Complete
- Better Exception Messages - Michael Snoyman’s blog
- Exception handling in Haskell Jobs – Lazy Eval – Medium
- Rethinking MonadError – The Science of Code
- On EitherT | Perpetually Curious
- Roll your own stack traces
- [1810.13430] Exceptionally Monadic Error Handling
- Exceptions tutorial from IH book
- fallibleというパッケージをリリースしました - Haskell-jp
- Async Exceptions in Haskell, and Rust
- Rethinking MonadError – The Science of Code
- Asynchronous Exceptions in Practice · Simon Marlow
- Try.do is dangerous
- Structure your Errors | jelv.is
- ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka’s blog
safe-exceptions
- fpco/safe-exceptions
- Announce: safe-exceptions, for async exception safety
- Haskellの最近の例外ハンドリング
- 続・Haskellの最近の例外ハンドリング
- Haskellの例外、今はコレ! Control.Monad.Catch
- Asynchronous Exception Handling in Haskell
- Async Exception Handling in Haskell - YouTube
Unchecked+Impure
- The retry package
- Neil Mitchell’s Haskell Blog: Haskell exceptions and FFI wrappers
- Haskellのassertを文っぽく使う - Qiita
- Default exception handler in Haskell · taylor.fausak.me
- It’s not a no-op to unmask an interruptible operation
Checked+Pure
- ERRORS AND EXCEPTIONS IN HASKELL
- Haskell Cat: Maybe/Either vs exceptions
- Error handling is code too!
- Finding bugs in Haskell code by proving it – Blog – Joachim Breitner’s Homepage
- Pure Functional Validation – Blacklane Engineering – Medium
- The Trouble with Typed Errors
- An answer to “The Trouble with Typed Errors”
- Control.Monad.Validate