Лучшее, что я нашел для обработки этого случая, это поместить весь рендеринг в сабвуфер Render
(который может включать %>
с html) и использовать
On Error Resume Next
Render
If Err.number <> 0 Then
' Handle the error
Response.Write "Error"
End If
При возникновении ошибкипри рендеринге подпрограмма Render
немедленно прерывается, и вы можете обработать ошибку с любым произвольным кодом, в том числе с включенным.Так что это уже не главное решение, помещаемое только в одном месте, но для страниц, требующих этого трюка сброса, просто используйте еще один трюк для обработки своих ошибок.
Общий код страницы выглядит как
<%@ language="VBSCRIPT" codepage="65001" %>
' Do everything that does not need any Flush
...
' Now handle the hacky part
On Error Resume Next
Render
If Err.number <> 0 Then
' Handle the error
Response.Write "Error"
End If
Sub Render
<%
<!-- your part of rendering which has to do flushes -->
...
%>
End Sub