【问题标题】:Handle .NET exceptions within Classic ASP pages处理经典 ASP 页面中的 .NET 异常
【发布时间】:2010-05-07 16:02:45
【问题描述】:

我正在从 ASP 页面进行 MSSQL 存储过程 CLR 调用。当发生异常时,它会被记录下来,然后重新抛出。在这种情况下,我需要能够处理 ASP 页面中的异常(如果可能)。请注意,在这种情况下,我无法摆脱经典的 ASP;我被困在这个项目的遗留系统中。如果您知道在经典 ASP 中处理异常的方法,请告诉我。感谢您的帮助!

谢谢, 泰勒

【问题讨论】:

  • 您是从 ASP 调用存储过程吗?还是您正在调用一些调用存储过程的.NET 代码?也许给我们举个例子。
  • 我从 ASP 调用存储过程;存储过程执行 C# CLR 代码。

标签: exception vbscript asp-classic clr


【解决方案1】:

经典 ASP 的代码语言是 VBScript,因此您必须使用该语言的错误处理能力,通过使用“On Error ...”构造。您需要决定是制作通用错误处理程序还是为 SQL 调用插入一些特定的错误处理逻辑。

这些是您的错误处理选项:

On Error Goto 0        ' Turns off error trapping. This is most likely what you got now
On Error Resume Next   ' In case of error, simply execute next statement. Not recommended !
On Error Goto <label>  ' Go to the specified label on an Error.

如果您使用 On Error Goto ...,则 Err 对象将包含错误信息。这意味着您应该能够编写如下内容:

On Error Goto errorHandler
' Your code here.

errorHandler:
' Handle the error somehow. Perhaps log it and redirect to a prettier error page.
Response.Write Err.Number
Response.Write Err.Description

【讨论】:

  • 感谢您的回复。执行存储过程后(在 ASP 代码中),出现以下代码行:“If Err.Number 0 Then”,然后是一些错误处理代码。我怀疑 asp.dll 无法捕获和处理 .NET 异常。你有什么其他的建议?谢谢。
  • 如果经典 ASP 错误机制启动并向您显示 ASP 错误,那么您应该能够这样处理它。如果没有,您可能正在做其他事情......也许尝试发布一些示例代码?
  • 很久没用ASP写过东西了。你是对的;我错误地处理了错误。谢谢!
猜你喜欢
  • 2013-07-17
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 2011-03-22
  • 1970-01-01
  • 2010-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多