当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

自定义非常[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好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .