仕様と申されましても、

誰が使うか全くわからんくらいに大量配布するAPI作るってんならともかく、
ふつう目的の機能を動かすためにプログラミングするんだろう

どうせ投げない例外処理を書いてもしょうがない

(当たり前だが、失敗しそうなことに対して自動テスト書いてくことのほうが大事)