我有一个ASP.NET Web应用程序,我想知道如何在抛出异常时显示错误消息框.
例如,
try { do something } catch { messagebox.write("error"); //[This isn't the correct syntax, just what I want to achieve] }
[消息框显示错误]
谢谢
您无法在客户端的计算机或服务器上合理地显示消息框.对于客户端的计算机,您将需要重定向到包含相应错误消息的错误页面,如果需要,可能包括异常消息和堆栈跟踪.在服务器上,您可能希望对事件日志或日志文件进行一些日志记录.
try { .... } catch (Exception ex) { this.Session["exceptionMessage"] = ex.Message; Response.Redirect( "ErrorDisplay.aspx" ); log.Write( ex.Message + ex.StackTrace ); }
请注意,上面的"日志"必须由您实现,可能使用log4net或其他一些日志记录实用程序.
您不能只调用messagebox.write,因为您与客户端断开连接.您应该注册显示消息框的javascript代码:
this.RegisterClientScriptBlock(typeof(string), "key", string.Format("alert('{0}');", ex.Message), true);
使用MessageBox.Show()将导致在服务器中显示一个消息框,并阻止线程处理进一步的请求,除非该框已关闭.
你能做的是,
this.Page.ClientScript.RegisterStartupScript(this.GetType(),"ex","alert('" + ex.Message + "');", true);
这将在客户端显示异常,前提是异常未冒泡.