[VB.NET]看看下面的代码,怎么没有错误提示呀!!!!!!

VB.NET源码-156个实用实例哦…… 看看下面的代码,怎么没有错误提示呀!!!!!!

自己建的类:

Private name As String

Public Property nm() As String
Get
Return Me.name
End Get
Set(ByVal value As String)
Try
If value <= 10 And value > = 1 Then
Me.name = value
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Set
End Property

按钮为4:


Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim nam As New Class1
nam.nm = 1333
MessageBox.Show(nam.nm)
End Sub
__________________________________________________________________________
Public Class Class1

Private name As String

Public Property nm() As String
Get
Return Me.name
End Get
Set(ByVal value As String)
Try
If value <= 10 And value > = 1 Then
Me.name = value
Else
Me.name = "Error "
Throw New Exception( "The value is out of range. ")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Set
End Property

End Class
__________________________________________________________________________
Set(ByVal value As String)
Try
If value <= 10 And value > = 1 Then

到底是string还是int类型?
如果是string要用 len()求哦。
__________________________________________________________________________
楼主错误理解了Try的使用方法,如果没有出系统级别错误Try是不会报错的

应将如下代码进行修改:
Try
If value <= 10 And value > = 1 Then
Me.name = value
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

改后代码:
If value <= 10 And value > = 1 Then
Me.name = value
Else
MsgBox(Value)
End If
__________________________________________________________________________
VB.NET默认允许隐式转换
value 会自动转换为Double类型

楼主是不是希望检测字符串长度,不太明白,给出两种方式,尽量不要用Try做逻辑验证

If value Is Nothing Then MsgBox( "传入的值为空! ") : Exit Property
If value.Length > 0 AndAlso value.Length < 11 Then
Me.name = value
Else
MsgBox( "传入的值溢出! ")
End If


If IsNumeric(value) = True Then
If CInt(value) > 0 AndAlso CInt(value) < 11 Then
Me.name = value
Else
MsgBox( "传入的值溢出! ")
End If
Else
MsgBox( "传入的值不是数字类型! ")
End If
__________________________________________________________________________
好像是问题问的有点不太清楚,在这里补充一下!!!

进行错误提示,但是当我将nam.nm = 1333时,系统却没有提示我出错
我规定的范围时 从 1 到 10
超出范围了但是没有提示我出错,这怎么解决呀!!!!!
__________________________________________________________________________
超出了范围如果想明确的引发自定义的异常,必须自己Throw出来一个异常

就像楼上各位举的例子一样..
__________________________________________________________________________
那用 try 里的 messagebox.show(ex.message) 不行吗???
还是只能用throw 呀!!!!!
__________________________________________________________________________
是不是这样最简单:

Try
If cint(value) <= 10 And cint(value) > = 1 Then
Me.name = value
End If
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
__________________________________________________________________________
这样也不会抛出错误吧?
__________________________________________________________________________
Private name As String

Public Property nm() As String
Get
Return Me.name
End Get
Set(ByVal value As String)
If value <= 10 And value > = 1 Then
Me.name = value
Else
‘抛出自定义的异常咯...
End If
End Set
End Property
__________________________________________________________________________
Public Property nm() As String
Get
Return Me.name
End Get
Set(ByVal value As String)
If CInt(val(value)) <= 10 And CInt(val(value)) > = 1 Then
Me.name = value
Else
‘抛出自定义的异常咯...
End If
End Set
End Property
__________________________________________________________________________
根本没有发生异常,怎么又会报错呢
__________________________________________________________________________
当你代码出现异常时才会报错!
__________________________________________________________________________
Private name As String

Public Property nm() As String
Get
Return Me.name
End Get
Set(ByVal value As String)
Try
If value <= 10 And value > = 1 Then
Me.name = value
else
Catch ex As Exception
MessageBox.Show(ex.Message)
EndIf
End Try
End Set
End Property
__________________________________________________________________________
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值