![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 city ![]()
![]() |
我知道這樣說很荒謬 但是... 先來個程式碼: (若下面內容有任何錯誤 歡迎各位大大們指正) =========================================================================================== [一] 以上: Form1的Button1_Click呼叫了Class1的Divide方法 但是Class1的Divide方法會出現錯誤 程式就卡住了 =========================================================================================== [二] 為了解決問題 在Class1裡面加上Try Catch 如下: 以上: Class1的Divide方法捕捉到了錯誤 但是卻無法通知Form1 並由Form1來處理錯誤出現後該怎麼做 =========================================================================================== [三] 如果Form1 Class1都加上Try Catch 如下: 以上: Class1捕捉到了錯誤 卻無法通知Form1 也無法由Form1的Try Catch來決定出現錯誤後該怎麼處理 也無法關閉Form1的Button1_Click方法 =========================================================================================== [四] Form1加上Try Catch Class1不加Try Catch 如下: 以上: Class1沒有Try Catch Form1有Try Catch Form1捕捉到了Class1的錯誤 並且可以自由的決定該怎麼做 所以:Class1不該有Try Catch? =========================================================================================== [五] 以上是Try Catch的範例 以下是Class除錯的範例: 如上: Class1的方法會對參數進行除錯 Class1偵測到錯誤的參數 可以進行部分的錯誤處理 例如: 1.出現錯誤訊息 2.出現錯誤訊息,由使用者決定是否忽略錯誤繼續執行或結束程式 3.結束Class的SetFormTitle方法 4.結束程式 可是Class1卻無法通知Form1出現錯誤了 並由Form1來處理發生錯誤時該怎麼做 Class1也不能關閉Form1的Button1_Click方法 使它不要進行後續的程式碼 就算Form1加上了Try Catch也是無法捕捉Class1的錯誤 =========================================================================================== [六] 如果Class1不對參數進行除錯 Form1加上Try Catch捕捉錯誤 如下: Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Try Class1.SetFormTitle(Nothing, Nothing) Catch ex As Exception '捕捉到了Class1的錯誤 並且可以自由的決定該怎麼做 End Try MessageBox.Show(Me.Text) End Sub End Class Public Class Class1 Public Shared Sub SetFormTitle(ByRef f As Form, ByVal s As String) f.Text = s End Sub End Class </pre> 以上: Class1並不進行參數除錯 而Form1順利的捕捉到Class1的錯誤 並且可以自由的決定該怎麼做 所以:Class1不該除錯? =========================================================================================== 不知道各位大大們能否了解以上我所說的? 在Class1裡面 如果有Try Catch 或是自訂的除錯機制 發生錯誤後 只能做出部分的處理 例如: 1.出現錯誤訊息 2.出現錯誤訊息,由使用者決定是否忽略錯誤繼續執行或結束程式 3.結束Class1裡面的方法 4.結束程式 如果要完整且自由的決定:發生錯誤時該如何處理 只能將Try Catch寫在Form1裡面 如果Form1有Try Catch 而Class1有Try Catch或是自訂的除錯機制 將會搶先攔截到錯誤訊息 而無法將錯誤訊息傳回給Form1 也就是說: Class1要故意不寫Try Catch 要故意不寫自訂的除錯機制 這樣才能將錯誤訊息傳回給Form1? 因此: Class1不能有Try Catch? 也不能有自訂的除錯機制? 各位大大們怎麼看呢? 各位大大們又該是如何做的呢? 謝謝~~ |
16樓
作者回應
city ![]() |
To:誰是誰
[與使用者介面互動] [類別庫專案] 這兩種情境目前還沒接觸過 目前還是在專案內使用Class.vb(非.dll庫)的情境 哈哈
本篇文章回覆於2019-01-12 22:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
17樓 |
[與使用者介面互動] 你怎麼會沒寫過呢?
你一定寫過這樣的東西,在畫面上放置一個 Button ,接著為這個 Button 的 Click 事件撰寫其委派函式。 這個委派函式作用不就是處理 "使用者按下畫面上的 Button 後要做的事情" 嗎 ?
本篇文章回覆於2019-01-12 23:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
18樓
作者回應
city ![]() |
To:誰是誰
原來大大說的[與使用者介面互動]是指這個 了解了 感謝大大的說明 :)
本篇文章回覆於2019-01-13 11:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |