VB.NET中On Error Resume Next结合闭包静默编译失败问题
VB.NET编译异常:VS2022无错误提示但无法编译
以下VB.NET控制台应用无法完成编译,但Visual Studio 2022未显示任何错误或警告信息:
Module Program Sub Main() On Error Resume Next '0 Dim a As String Dim b = Sub(_a) Console.WriteLine(_a) '1 Dim c = Sub(_a) a = _a '2 End Sub End Module
关键现象:
- 注释掉第0行(
On Error Resume Next语句)或第2行(赋值给c的Lambda表达式),程序即可正常编译 - 第0行与第1行可以协同编译通过,但第0行与第2行同时存在时无法兼容
注:无需告知On Error Resume Next不推荐使用,本人更偏好C#,仅通过VB演示Golang风格错误处理(if err != nil检查)与旧版VB风格错误处理(On Error Resume Next激活下的If Err.GetException() IsNot Nothing Then)的相似性。
内容的提问来源于stack exchange,提问作者Sunshine Li
相关产品推荐
相关产品推荐

