例外設計
みなさん、コピペに励んでいらっしゃいますでしょうか?
今日も私は絶賛コピペ中です。
この世はコピペでできていると胸を張ったものの、コピペが通用しない世界もあります。
その一つが例外のハンドリング。
もちろんコピペも可能ですが、なんの役にも立っていないことは、ご承知の通りです。
try { hogehoge; } catch(Exception e){ fugafuga; }
こんなコピペでも、欲しいと思う人はいないと思いますが、もしもいらっしゃったら...もう少し手元のツールに期待を寄せてみたほうが良いと思います。昨今の開発ツールは、選択したところを対象にtry/catchはサクッと作ってくれちゃうと思います。
この投稿で扱うのは、コピペの話ではありません。なるべくコピペの精神に沿って、難しいことを覚えず、楽をして、まぁまぁきちんと動くというところを目指した場合、どうしたものかについて、考えてみる投稿です。
参考にしたのはこちらのサイト。もちろんストック済みです。 qiita.com
非常に示唆に富む、そして重要な幾つかの参考文献を抑えて、とても参考になる投稿です。ナンチャッテな私は、理解した気は十分、理解度30%に満たない悲しい存在だと思います。
さて、一つだけツッコミを入れてみると、呼び出し元でチェックしておけば、呼び出し先でチェックが不要になる例がありますが、ライブラリみたいにみんなからガシガシ呼ばれる場合には呼び出し先でチェックした方が手数は減りますね。
あと、すべて自分の息のかかったコードなら良いですが、今時のアプリ開発はその契約の及ばないコードが紛れることは避けられず、すべてをこの論法で解決できるわけでもないように思います。
やはりこの手の話は、机上だけで展開すると完結してる風に読めてしまうことがありますが、自分アプリを実例にとって検証と反省を込めた再設計を経て、自分なりの考察する必要がありそうですね。
ということで、なんの結論もない、なんの知見もない、無駄投稿でした。
思えば、このブログも、本来はQiitaでやれば良い内容かも知れませんが、そこまでの自信が有りません。より本職に近い少しだけ自信を持って書ける物だけ、Qiitaで書くという使い分けがなんとなくあります。