Try-Catch-End Try用法咨询:两种错误捕获写法的区别
关于VB.NET中Try-Catch空块两种写法的区别
嘿,这个问题问得很细致!先明确一下,你提到的两种写法都是VB.NET里用来静默捕获并忽略错误的处理方式,它们在执行逻辑上有部分重叠,但在可读性和代码意图表达上差异很大,咱们拆开来聊:
两种写法的本质
先把两种写法的完整形式摆出来,方便对比:
写法一:带注释的空Catch块
Try ' 这里写你的业务逻辑代码(比如Blabla) Catch ' Do nothing if error occurs (明确注释:出错时不做任何处理) End Try
写法二:紧凑的单行Catch-End Try
Try ' 这里写你的业务逻辑代码(比如Blabla) Catch : End Try
核心区别
1. 可读性与代码意图清晰度
- 写法一的优势非常明显:注释直接说明了你的意图——不是忘记写错误处理,而是刻意选择忽略这个错误。团队里其他维护代码的人(包括几个月后的你自己)一眼就能看懂,不会产生误解。
- 写法二用VB的冒号
:把Catch和End Try挤在同一行,虽然语法合法,但可读性极差。不熟悉VB语法的人可能会漏掉这个Catch块,或者误以为这里有什么省略的逻辑,很容易引发后续的维护问题。
2. 语法执行逻辑的等价性(去掉注释后)
如果把写法一中的注释删掉,变成:
Try ' Blabla代码 Catch End Try
那它和写法二在语法和执行逻辑上是完全等价的——两者都会捕获Try块中抛出的所有异常,并且不做任何处理,直接跳过错误继续执行后面的代码。
额外提醒:谨慎使用空Catch块
虽然两种写法都能实现“出错就跳过”的效果,但除非你100%确定这个错误不会影响后续代码的正常运行,否则非常不推荐这么做。更好的做法是至少记录错误信息(比如写入日志文件),不然出现问题时根本没法定位根源。
内容的提问来源于stack exchange,提问作者2zoo
相关产品推荐
相关产品推荐

