尝试/捕获阻止不捕获异常

ave*_*sse 1 c# asp.net session try-catch

我在try/catch块中有一个语句,但异常没有被捕获.谁能解释一下?

异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例.

来源错误:

Line 139:                try
Line 140:                {
Line 141:                    return (int)Session["SelectedLeadID"];
Line 142:                }
Line 143:                catch (Exception ex)
Run Code Online (Sandbox Code Playgroud)

更新 这是一个ASP.NET应用程序.在catch块中,抛出一个新异常.您看到的代码是ASP.NET错误页面上显示的内容.

cwa*_*wap 6

那个捕获块应该捕获异常,但要确保那里没有重新投掷.

另一个小评论:我被VS欺骗了很多次,导致它在调试模式下运行时出现异常.尝试简单地按"继续"或"F5",看看你的应用程序是否仍无效:)


Mar*_*ell 5

我怀疑您将需要添加更多细节-仅从您的代码中是无法复制的。特别是(前面已经提到)我们需要看到里面的catch,并验证异常实际从抛出内部try,而不是别的地方。

其他可能性:

  • 您在本身引发异常的异常处理程序中有躲闪的代码
  • 你有一个Dispose()被称为(using等)的狡猾
  • 您使用的是.NET 1.1,抛出的东西(未显示代码)不是Exception,而是其他一些对象