6

ExportToHttpResponse次のように使用してCrystalReportDocumentをエクスポートしようとしています。

report.ExportToHttpResponse(exportOptions, HttpContext.Current.Response, true, "test");

これを最初に実行しようとしたときに、を受け取りましたSystem.Threading.ThreadAbortExceptionこの質問ExportToHttpResponseでこれが既知のエラーである方法について読んだ後、次のように、ステートメントをtry/catchブロックでラップするという推奨される回避策を実装してみました。

try
{
    report.ExportToHttpResponse(expOptions, HttpContext.Current.Response, true, "test");
}
catch (System.Threading.ThreadAbortException e)
{
}

私が理解しているように、これはエラーをキャッチして無視し、続行する必要があります。しかし、私はまだSystem.Threading.ThreadAbortExceptioncatchステートメントの最後の括弧を取得しています。私の質問は、どうやらそれをキャッチしているのに例外がまだ受信されているのはなぜですか、そして例外が無視されるようにそれを修正するにはどうすればよいですか?

4

1 に答える 1

8

ThreadAbortException をキャッチし、Thread.REsetAbortメソッドを呼び出して、例外のバブリングをキャンセルできます。ただし、response.end は悪い考えであることに注意してください。HttpApplication.CompleteRequest() を呼び出そうとするたびに、この SOの質問を読んでください。これは、この点で私にとって本当に役に立ちました。

于 2012-09-17T19:44:50.717 に答える