- 題名: Throwの使い方
- 日時: 2006/08/01 16:10:46
- ID: 16918
- この記事の返信元:
- (なし)
- この記事への返信:
- [16922] Re[1]: Throwの使い方2006/08/01 17:42:44
- ツリーを表示
■No16918に返信(かなだかさんの記事) > Throw文を知って上記のプログラムを下のように変更したのですが、Throw文の使い方としては正しいのでしょうか? Public Function sum() As Integer Try Return price Catch ex As OverflowException 'エラー処理 Throw 'ex <= ex は不要(意味合いが変わる) End Try End Function
> Throw exの場合だと、新たな例外を作成してしまうのですね。 その通りで、独自の例外エラーにしたい場合は、 Throw New Exception("hogehogeのためエラー") とか、 Throw New Exception("hogehogeのためエラー", ex) とすることがあります。 後者は例外の中に例外の情報を含める方法です。 もちろん独自の例外を作成する場合もあります。 #MSDNのException参照
分類:[.NET]
かなだかと申します。よろしくお願いします。
VB.NETに限ったことではないのですが、疑問に思ったので書き込ませていただきます。
現在Throw文を使用して呼び出し元へエラーを返す処理を勉強しています。
今まで「メソッドの戻り値は全てBoolean型とし、エラーの有無を判定しろ」と習ったのですが、単純処理のメソッド等でも、これを守ってきました。
-----金額を求めるメソッド----------------------
Public Function sum() As Boolean
Try
~合計を求める処理
Return True
Catch ex As OverflowException
~エラー処理
Return False
End Try
End Function
Public Readonly Property Price() As Integer
Get
Return _price
End Get
End Property
Private _price As Integer
----------------------------------------------
しかし、これでは呼び出し元で "金額を合計する処理" と "合計値の取得"と2度呼び出し処理を行わなければならないため、無駄の多いように感じてなりません。
しかし、いかに単純な処理でも「絶対にエラーが発生しない」とも言い切れず、結局Boolean型を返しているのですが、Throw文を知って上記のプログラムを下のように変更したのですが、Throw文の使い方としては正しいのでしょうか?
また、呼び出し元への有効なエラー対策などありましたらご教授よろしくお願いします。
------呼び出し元でもTry Catch-----------------
Public Function sum() As Integer
Try
~合計を求める処理
Return price '合計額を返す
Catch ex As OverflowException
~エラー処理
Throw ex
End Try
End Function
---------------------------------------------