Public Function x() As Boolean
Try
If xxx Then
Return True
Else
Return False
End If
Catch ex As Exception
xxx
End Try
Return False End Function
例えば上の様なコード場合正常に処理が完了すればtryの途中で、End Tryを踏まずに関数を抜けると思うのですが、このような書きかたはするべきではないのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
直接の答えではなくてすみません。
安易に try - catch は書かない方がよいということをアドバイスさせてください。(そういうコードを見るとどうしても言いたくなってしまいます)
例外処置については、
(1) 予測可能で正しい業務フローに戻すことができる「業務エラー」(例:ユーザーの入力間違い)と、予測できないもしくは予測はできても何の対応もできない「例外」(例:DB サーバーダウン)を区別して対処。
(2) 「例外」はランタイムに拾わせてアプリケーションを停止させる。
(3) よほどのことがない限り try-catch は書かない。
(4) キャッチせざるを得ない場合でも Excption はキャッチしない。
(5) 間違って補足してしまった例外は throw する。(注:catch ブロックでキャッチした例外を throw するとスタックトレースが途切れるので単に throw と書く)
(6) ユーザーへの通知が必要なら、集約的例外処置を利用する。
・・・という方向でコードを書くのが良いと思います。
詳しくは以下の記事を見てください。
NETの例外処理 Part.1
https://blogs.msdn.microsoft.com/nakama/2008/12/29/net-part-1/
.NETの例外処理 Part.2
https://blogs.msdn.microsoft.com/nakama/2009/01/02/net-part-2/
あと、.NET 4 からは破損状態例外は catch できなくなっているそうですが、「それでも Catch (Exception e) を使用するのはよくない」ということについては以下の記事を見てください。
破損状態例外を処理する
https://msdn.microsoft.com/ja-jp/magazine/dd419661.aspx
VB.NET の場合、Visual Studio のエディタで Try と入力すると自動的に Catch ex As Exception というコードが出てきますが、そこに惑わされないでください。(だから VB.NET など使わない方がよいと個人的に思っています)
投稿2017/10/20 04:54
退会済みユーザー
総合スコア0
0
必ずEnd Tryを踏む必要はないので問題ないと思います。
それと、今後のためにソースは囲った方が良いです。
でないとインデントがなくて見づらいので・・・。
Public Function x() As Boolean Try If xxx Then Return True Else Return False End If Catch ex As Exception xxx End Try Return False End Function
投稿2017/10/20 03:34
総合スコア928
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Finally句があった場合どうなりますか?
Tryの中でReturnされた後にFinallyが動く?
それともFinallyが実行されてからReturnされる?
そんなわけのわからないコードは書くべきではないのですよ。
あと単純にFunctionの中でReturnが散らばってるのはきたないです。
Tryの前に返却用の変数を宣言して最後のReturnで返すのが望ましいですね。
↑↑FinallyではReturn出来ないらしいので1行消しました。
嘘を書いてしまって申し訳ないです。まあ趣旨はかわらないので。
投稿2017/10/22 03:16
編集2017/10/23 11:55総合スコア200
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/10/22 14:29
2017/10/25 01:16