Re: vb.net例外

看板Programming作者 (Eric)時間18年前 (2006/12/14 01:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《Quota.bbs@bbs.mcu.edu.tw (換東西嚕)》之銘言: : 程式已經作了修改,雖然可以執行,但我有若干疑問。 : 以實際生活的例子來說吧 : 當我生產汽車時, : 1.如果車號小於0 以及汽油量小於0發生了錯誤,均會產生例外。 : ==> : 我的疑問是,可以將這兩種例外都放在Class CarException內嗎? : 那該怎麼寫呢? 提供我的做法,我認為應該對個別錯誤作特殊化,不應該用一個概跨的carException 你可以在做 errorCarNumException 與 NullOilException 分別對那兩個錯誤的地方丟比較細的Exception : 2.如果車號與汽油量產生例外 當生產線執行show()時,應該要秀出其他訊息 : 而不是"車號是xxx"、"汽油量是xxx"這樣的訊息.. : 可否請大家協助,給我些提示,程式已經改到這裡,愈來愈像我要的程式,謝謝! : 附上原始語法: 這地方我用firefox看不太出來,幫不到你,抱歉 不過提供您幾個資訊.. 你的Domain object 與你的presentation Layer已經混在一起 對這個有興趣的話,可以看一下馬大師寫的Patterns of Enterprise Application Architecture 第一章 Exception是一個很有趣的東西 若對Exception 有興趣的話可以先看一下小弟拙作 http://blog.yam.com/ericwang/article/6688178 也歡迎指正 若不知道exception抓下來後要幹麻的 可以看 code complete 2ed ch 9 Defensive programming 一章 供您參考 : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click : Dim car1 As New excar : Dim a As Integer : Dim b As Double : a = Val(TextBox1.Text) : b = Val(TextBox2.Text) : car1.setCar(a, b) : car1.show() : End Sub : End Class : Public Class CarException : Inherits Exception : Public Sub New() : MsgBox("請輸入大於0的數字") : End Sub : End Class : Class excar : Private num As Integer : Private gas As Double : Sub New() : num = 0 : gas = 0.0 : MsgBox("已生產了汽車") : End Sub : Public Function setCar(ByVal n As Integer, ByVal g As Double) : MsgBox(n) : MsgBox(g) : Try : If (g < 0) Then : Throw New CarException : End If : num = n : gas = g : MsgBox("已使車號為" & num & ",使汽油量為" & gas) : Catch ex As Exception : MsgBox("還有其他的錯誤喔") : End Try : End Function : Public Function show() : MsgBox("車號是" & num) : MsgBox("汽油量是" & gas) : End Function : End Class -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.96.192
文章代碼(AID): #15W3Yim2 (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
18年前, 12/13
完整討論串 (本文為第 3 之 3 篇):
18年前, 12/13
文章代碼(AID): #15W3Yim2 (Programming)