Asp.net HttpHandler ASHX文件中的异常处理

Asp.net HttpHandler ASHX文件中的异常处理,asp.net,html,exception-handling,httphandler,Asp.net,Html,Exception Handling,Httphandler,我正在使用ASHX文件以动态方式创建图像。 我添加了一行代码以在ashx文件中引发异常。如果我直接浏览到ashx文件,则global.asax中的应用程序_错误可以很好地处理该错误 我的问题是,当我在另一个页面中使用此处理程序时,应用程序错误不起作用。如show.aspx中所示,如果我将: <img src="image.ashx" /> 那么我如何在OneError中实现这些呢?我相信异常是按预期抛出的。但是,现在异常详细信息用作的数据,它将显示一个“断开”的图像。如果处理程序中

我正在使用ASHX文件以动态方式创建图像。
我添加了一行代码以在ashx文件中引发异常。如果我直接浏览到ashx文件,则global.asax中的应用程序_错误可以很好地处理该错误

我的问题是,当我在另一个页面中使用此处理程序时,应用程序错误不起作用。如show.aspx中所示,如果我将:

<img src="image.ashx" />

那么我如何在OneError中实现这些呢?

我相信异常是按预期抛出的。但是,现在异常详细信息用作的数据,它将显示一个“断开”的图像。如果处理程序中出现错误,我建议提供一个不同的静态图像,并将错误记录在外部文本文件或其他数据源中。

您可以正常添加catch块,如果出现错误,您可以显示另一个默认图像。

这似乎是对html的误解?发生错误时,您希望的行为是什么?@zac重定向到另一个页面如果我想使用重定向怎么办?嗯,理想情况下,您希望它如何工作?如果生成的映像抛出错误,请重定向用户?我使用了几个外部API和一系列类来生成此映像。我不喜欢有几十个试抓块
Public Sub Init(ByVal context As System.Web.HttpApplication) Implements system.Web.IHttpModule.Init
    AddHandler context.Error, AddressOf OnError
End Sub

Private Sub OnError(ByVal sender As Object, ByVal e As EventArgs)
    Dim app As HttpApplication = CType(sender, HttpApplication)
End Sub