来一篇关于NET的使用 Application_Error 捕捉一切非常
在VC.net的版本上,为了让C++运行在.NETFramework中,微软为C++引进了托管,就是托管C++(ManagedC++),这个根本就没有流行起来,自托管C++产生以后就没有收到过好评。WebApplication开辟中一般是必要利用非常捕捉,以供应给用户优秀的提醒页面。为了削减代码,一致日记处置,能够在Global.asax中Application_Error的事务处置办法中一致处置。
它将捕捉一切Application级其余UnhandleException和HttpException(好比:会见的页面不存在等)
总之,在这里处置的话,那末在页面中的一切try/catch处置都能够不要了。
voidApplication_Error(objectsender,EventArgse)
{
//Codethatrunswhenanunhandlederroroccurs
try
{
Server.Transfer("~/Error.aspx");
}
catch
{
//ignore
}
}
由于Server.Transfer将流动抛出ThreadAbortException非常,不必剖析。
然后在指定的Error.aspx里你能够经由过程Server.GetLastError()来举行,毛病分类,日记处置,显现信息等事情。
publicpartialclassError:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!IsPostBack)
{
Exceptionex=Server.GetLastError().GetBaseException();
this.Label1.Text=DateTime.Now.ToString();
if(ex!=null)
{
//毛病的信息
this.Label2.Text=ex.Message;
//毛病的仓库
this.Label3.Text=ex.StackTrace.Replace("","<br/>");
//堕落的办法名
this.Label4.Text=ex.TargetSite.Name;
//堕落的类名
this.Label5.Text=ex.TargetSite.DeclaringType.FullName;
}
//清空最初的毛病
Server.ClearError();
}
}
}
归根到底,Java跨平台可以,但是要重新编写代码,否则还分什么J2EE/J2SE/J2ME呢! 我的意思是.net好用,从功能上来说比JAVA强还是很明显的。 ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。 现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。 有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
页:
[1]