Re: vb.net例外
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章