|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。简述:
用try捕捉非常后自动抛出一个非常,在Global.asax.vb的Application_Error顶用Server.ClearError()扫除非常,用System.Web.HttpContext.Current.Response输入javascript代码完成信息提示和前往上一页。
具体申明:
比方,把毗连数据库的办法做成一个类cdbconn.vb。成绩在于当数据库毗连失利的时分,体系主动抛出的毗连失利的非常的处置。
因为程序挪用该类的工具后的举措不成估计,因而最幸亏处置该非常后,背景程序就此停止,前往之前的页面。
在类中捕捉非常一样能够try,可是处置完后使背景程序就此停止就有点贫苦,在论坛中搜刮到了思回年夜年夜给的一个毗连:
HOWTO:CreateCustomErrorReportingPagesinASP.NETbyUsingVisualC#.NET
http://support.microsoft.com/default.aspx?scid=kb;EN-US;306355
vb.net的连接是
http://support.microsoft.com/default.aspx?scid=kb;EN-US;308132
理论得出计划以下:
在类文件cdbconn.vb中有
Try
dbconn.Open()
CatchexAsException
System.Web.HttpContext.Current.Response.Write(win.msgbox(strMsg_noneDatabase))
ThrowNewSystem.Exception(strMsg_noneDatabase)
EndTry
截获非常后再抛出一个非常。这话听起来有点偏差,次要的用处在于大概会必要处置非常带来的贫苦,这里没有甚么必要处置,以是只是自界说一个非常信息给体系用户。
在Global.asax.vb中的Application_Error中增加相干举措
SubApplication_Error(ByValsenderAsObject,ByValeAsEventArgs)
在产生毛病时引发
DimobjErrAsException=Server.GetLastError().GetBaseException()
DimerrAsString="ErrorCaughtinApplication_Errorevent"&_
System.Environment.NewLine&_
"Errorin:"&Request.Url.ToString()&_
System.Environment.NewLine&_
"ErrorMessage:"&objErr.Message.ToString()&_
System.Environment.NewLine&_
"StackTrace:"&objErr.StackTrace.ToString()
EventLog.WriteEntry("Sample_WebApp",err,EventLogEntryType.Error)
Server.ClearError()
System.Web.HttpContext.Current.Response.Write("<scriptlanguage=javascript>alert("&objErr.Message.ToString&");</script>")
System.Web.HttpContext.Current.Response.Write("<scriptlanguage=javascript>history.go(-1);</script>")
EndSub
这里EventLog.WriteEntry("Sample_WebApp",err,EventLogEntryType.Error)会使非常一般抛出,而不会持续向下实行,以是正文失落了,msdn上拷来的,岂非是版本成绩?
最主要的就是Server.ClearError(),没有它非常会一般抛出的。停止到这一句体系会前往一张白纸,甚么都没有这固然是不可的,以是上面用response输入提醒,并前往上一页。至此成绩办理。
</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 |
|