CJ7*_*CJ7 5 vb6 error-handling
我意识到这是一个较旧的编程环境,但我必须清理一些VB6代码,我发现它大多数使用:
On Error Resume Next
Run Code Online (Sandbox Code Playgroud)
关于使用的一般共识是On Error Resume Next什么?
当然,如果出现错误,您可能希望应用程序停止正在执行的操作,回滚任何数据更改,并通知用户错误,而不仅仅是恢复.
什么时候使用是个好主意On Error Resume Next?
使用On Error Resume Next来实现本地结构化错误处理是完全合理的.这包括测试异常并对其采取行动,以及随后解除机制.例:
On Error Resume Next
GetAttr strFilePath
If Err Then
On Error GoTo 0
'Deal with "no file" scenario.
Else
On Error GoTo 0
'Open and process the file.
End If
Run Code Online (Sandbox Code Playgroud)
这只是一个简单的例子,预计只会出现一种异常.在某些情况下,有必要测试Err.Number的特定值,并根据它们采取不同的操作.
基于GoTo 标签的非结构化方法通常也可以正常工作,但在大多数情况下它并不优越.在VBScript中,上面显示的模式是您从未拥有的唯一形式的异常处理,因为没有GoTos或标签.
令人反感的是在每个程序的头部设置明确的异常测试并忽略它......一种信任力量,Luke试图掩盖编码错误的方法.
我发现它在错误不能保证用户被问题中断的函数中很有用.一个很好的例子是resize事件.如果你犯了错误或者在resize事件中出现问题,那么你可能不希望用户看到这个,因为它可能不会影响功能.
我会说,一般来说,谨慎使用它.
| 归档时间: |
|
| 查看次数: |
6867 次 |
| 最近记录: |