有兩個很常見的 Exception handling 不良風格
1. 濫用 :pre 和 :post 來做檢查,而不是使用 spec 或 malli
2. catch Throwable
```
(try
(assert false)
(catch Throwable e
"Barfoo"))
```
理由是類似的:
(1) Error => 程式有 bug ,設計時不考慮 catch 它。這種可以用 assert 。
(2) Exception => 程式沒有 bug 但是執行的時候遇到異常,設計時可以考慮 catch 它。
註:
(a) 用 : pre 和 : post 的話,會丟出 Error ,但是一般的格式錯誤是 Exception
(b) catch Throwable 的話,會 catch 到 Error ,但是我們只應該 catch Exception ,不應該 catch Error 。