DOBON.NETプログラミング道掲示板

■34328 / 親階層)  Catch時のex.StackTraceの情報
□投稿者/ たくろう 一般人(1回)-(2019/10/26(Sat) 10:43:50)
  • アイコン環境/言語:[VB2017] 
    分類:[.NET] 

    2019/10/26(Sat) 10:47:40 編集(投稿者)
    2019/10/26(Sat) 10:44:43 編集(投稿者)
    2019/10/26(Sat) 10:44:34 編集(投稿者)
    
    --------------------------------
    01    Public Class Form1
    02        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    03            Try
    04                Dim l1 As Long = 1
    05                Dim l2 As Long = 0
    06                Dim l3 As Long
    07                l3 = l1 / l2 'ゼロ除算エラーを発生
    08            Catch ex As Exception
    09                Console.WriteLine(ex.StackTrace)
    10            End Try
    11        End Sub
    12        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    13            Try
    14                Test2()
    15            Catch ex As Exception
    16                Console.WriteLine(ex.StackTrace)
    17            End Try
    18        End Sub
    19        Private Sub Test2()
    20            Try
    21                Dim l1 As Long = 1
    22                Dim l2 As Long = 0
    23                Dim l3 As Long
    24                l3 = l1 / l2 'ゼロ除算エラーを発生
    25            Catch ex As Exception
    26                Throw
    27            End Try
    28        End Sub
    29    End Class
    --------------------------------
    
    例として、このようなプログラムがあります。
    #実際には会社でプログラムを書いてて、それを紙に印刷して持ち帰り
    #家で紙から再度手打ちしてプログラムを書いているので、
    #もしかすると、誤字脱字があるかもしれません。
    #社内ルールで会社から掲示板に投稿できない為、ご容赦ください。
    
    フォーム上にButton1とButton2の2つ配置されています。
    両ボタンとも処理内容は同じです。
    ただ、その処理をボタンのイベントプロシージャに直接書いているか
    サブプロシージャに書いているかの違いです。
    
    Button1を実行すると、エラーが発生して、
    ex.StackTrace(の出力結果)には
    「7行目でエラー」という情報があり、問題ありません。
    
    Button2を実行すると、エラーが発生して、
    ex.StackTrace(の出力結果)には
    「26行目でエラー」と「14行目でエラー」の2つの情報だけで、
    最初のエラー位置「24行目でエラー」という情報が含まれません。
    
    「24行目でエラー」という情報が含まれるようにしたいのですが、
    どのようにすれば良いでしょうか?
    
    
    ※サブプロシージャではTry-Catchしなければ良いのかもしれませんが、
      この例ではそうですが、実際には、データベースのトランザクションなどを行っており、
      サブプロシージャ内でもTry-Catchが必要となります。
    

マルチポストを報告
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: Catch時のex.StackTraceの情報 /魔界の仮面弁士
 
上記関連ツリー

Nomalアイコン Catch時のex.StackTraceの情報 / たくろう (19/10/26(Sat) 10:43) #34328 ←Now
Nomalアイコン Re[1]: Catch時のex.StackTraceの情報 / 魔界の仮面弁士 (19/10/26(Sat) 17:27) #34330
  ├Nomalアイコン Re[2]: Catch時のex.StackTraceの情報 / たくろう (19/10/26(Sat) 22:34) #34331
  └Nomalアイコン Re[2]: Catch時のex.StackTraceの情報 / たくろう (19/10/28(Mon) 23:03) #34343 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -