自定义非常[Java编程]
本文“自定义非常[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
这个非常简单只说两点:1.操纵StackFrame来简化错误信息的生成 2.操纵自定义非常来简化信息传送.
public class BException : ApplicationException
...{
string _errMsg = "";
public BException() : base() ...{}
public BException(string msg) : base(msg) ...{ this._errMsg = msg; }
public string Message
...{
get ...{ return this._errMsg; }
}
public static BException CreateError(string msg)
...{
StackTrace st = new StackTrace();
StackFrame sf = st.GetFrame(1);
MethodBase mi = sf.GetMethod();
Type t = mi.DeclaringType;
return new BException(string.Format("Error in {0}::{1} -- {2}",
t.Name, mi.Name, msg));
}
public override string ToString()
...{
return this._errMsg;
}
}
在CreateError办法中操纵StackTrace找出调用CreateError的调用者,GetFrame(1).GetFrame(0)就是当前的CreateError办法.是不是很便利.
Exception还能简化函数调用中的消息传送.比方我们写程序常常会有"用户密码错误","该用户没有权限"这样的消息提醒.我们要末是通过判断办法的返回值的方法,要末是通过参数将提醒信息返出来.这两种方法不但麻烦并且调用者还需求记得各个办法返回的涵义.而用Exception是一种较好的办法来办理这个问题把需求提醒的信息throw出来,然后统一拦阻这个自定义消息举行提醒.这里以Asp.net来阐明统一处理自定义错误:
protected override void OnError(EventArgs e)
...{
BException msg = Server.GetLastError().GetBaseException() as BException;
if(ex != null)
...{
//go(-1)是在提醒消息后可以返回到上一个提交页面
Response.Write("<script>alert('"+msg.Message+"');window.history.go(-1);</script>");
//没有这句消息提醒会有误
Server.ClearError();
return;
}
}
以上是“自定义非常[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:在运行时将大图分割为小图片数组
- ·下一篇文章:在Java程序中实现回调例程
- ·中查找“自定义非常”更多相关内容
- ·中查找“自定义非常”更多相关内容