2005年05月18日(水)

.NETにThrowsは必要ないのか?

テーマ:.NET
ここ最近.NET(C#)を触っています。

Javaにそっくりなので、とっつきやすかったのですが、似ているとはいっても所々違う部分もありますので、よく記述を間違えます。

Javaにはあって、C#にはないものの中で一番気になるのが、Throws句です。

メソッド定義に「Throws 例外」を付加する事で、呼び出す側で例外処理を強制させる機能です。

これがあることによって、コンパイル時に必要な例外が漏れなく実装できるため、実行してみた時に想定外の問題が起こりにくくなります。

この機能、最初に「例外処理」を理解できた時に便利だなぁと感心したものです。
ところがC#には、この機能がありませんので、実行してみた時に思わぬ例外が発生したりして戸惑います。

何でないんでしょうか。

確かにThrowsがあると、面倒くさいです。
最初は便利と思うものの、慣れてくるといちいち強制されるのがうっとおしかったりします。
でも、Throwsは実装を助けるためにとても重要な機能だと思っています。

C#の言語仕様設計者は、実行速度を重視したんでしょうか。
それともコーディング量が減るように意識したんでしょうか。
もしくはプログラマにお任せしたかったんでしょうか。

本当のところは分かりませんが、個人的にはThrows句を実装してほしいところです。

Amebaおすすめキーワード

    アメーバに会員登録して、ブログをつくろう! powered by Ameba (アメーバ)|ブログを中心とした登録無料サイト