C# Try/Catch块未捕获异常
我在try/catch块中有一条语句,但是没有捕获异常。有人能解释一下吗 例外情况详情: System.NullReferenceException:对象 引用未设置为的实例 反对 源错误:C# Try/Catch块未捕获异常,c#,asp.net,session,try-catch,C#,Asp.net,Session,Try Catch,我在try/catch块中有一条语句,但是没有捕获异常。有人能解释一下吗 例外情况详情: System.NullReferenceException:对象 引用未设置为的实例 反对 源错误: Line 139: try Line 140: { Line 141: return (int)Session["SelectedLeadID"]; Line 142: } Lin
Line 139: try
Line 140: {
Line 141: return (int)Session["SelectedLeadID"];
Line 142: }
Line 143: catch (Exception ex)
更新
这是一个ASP.NET应用程序。在catch块中,抛出一个新异常。您看到的代码就是ASP.NET错误页面上显示的代码。该catch块应该捕获异常,但请确保没有重新抛出
另一个小评论:我已经被VS欺骗了好几次,因为它在调试模式下运行时会出现类似的异常。试着简单地按“continue”或“F5”,看看你的应用程序是否仍能正常工作:)我想你需要添加更多的细节——这不仅仅是从你的代码中就能复制出来的。特别是(如前所述),我们需要查看
catch
的内部,并验证异常实际上是从try
内部抛出的,而不是从其他地方抛出的
其他可能性:
- 在异常处理程序中,存在本身正在引发异常的不可靠代码
- 您有一个狡猾的
正在被调用(Dispose()
等)使用
- 在.NET1.1中,抛出的对象(代码中未显示)不是
,而是其他对象异常
要恢复正常执行,只需从列表中取消选中适当的异常即可。在我看来,代码非常难看。因为catch()中有某些内容block表示您将有另一个
return…
语句,您应该在每个函数的末尾都有一个单独的return语句,以使下面的代码更简单
i、 也许你的代码应该是这样的
public int Function()
{
int leadID = 0;
try
{
int leadID = (int)Session["SelectedLeadID"];
}
catch (Exception ex)
{
...
}
return leadID
}
我想,单出口点应该会让代码更容易理解?无论如何,要获得任何有用的帮助,您必须发布更多的函数。C#-visualstudio 2019
真实案例解决方案:
使用“System.Exception”而不是Exception。
-->catch(System.Exception ex)
我遇到了完全相同的问题(没有输入异常)。
这个问题是由“使用Java.Lang
在这个特定的项目中,我们在C#中使用ANDROID SDK
C#-Visual Studio 2019您还没有显示catch块中的内容-例如,是否有“throw;”语句?显示try/catch块的完整代码是的,目前它只是将异常作为新异常的内部异常进行抛出-稍后将添加日志记录。我意识到这是很久以前的事了,但这不是一个很好的方法,你应该使用Int32.TryParse来处理它可能无法设置int值的问题。不,不幸的是,它会中断。我确实会重新抛出,但我希望应用程序只会进一步分解调用堆栈?请记住以正确的方式重新抛出:)根据标记,这是针对C的。
使用
就是C#。。。我想有些库的名称空间是Java.Lang
,但是这是一个非常独特的情况,大多数情况下都会假设使用了System.Exception
。特别是当C#中生成的所有类都有使用系统的第一行时代码>这是一种风格上的东西,在catch块中返回或具有多个返回(甚至可以通过具有多个断点使代码更简单)没有本质上的错误。无论如何,这不是问题的答案(我知道,我已经很晚了),实际上你写这篇文章时有语法错误。您正在try块中重新声明leadID
。好吧,使用多个return语句比使用明显的语法错误要好得多。(尽管它们中的任何一个都没有错。)