三层结构看了些但里面的错误处理很少,所以对这方面比较想了解一下。最好能深入些比如:如果不是致命的错误,则提示详细的错误信息      如果是可以忽略的错误,则继续执行。      如果涉及到数据安全的,则终止执行。呵呵~~顶着有分

解决方案 »

  1.   

    try
    {}
    catch
    {}
    中进行处理
    一般严谨的程序,都是先判断输入的准确性,然后进行处理
    如果不是常见的错误,在catch中,我们一般都是直接catch{throw;}直接丢给ASP.NET的错误页面
      

  2.   

    一般的应用都会采用自定义Exception来处理,系统中的异常。但是在DB访问层和业务逻辑层只是将异常转化为自定义的异常比如将SQLException转化为AppDBException(该异常为自定义异常)最后的Exception处理(比如显示错误画面,打印日志等)都在表现层处理。
      

  3.   

    可以自己写继承于Exception的异常类来处理
      

  4.   


    引言:
    在Data层(不算作三层中的一层)
    :定义一个错误消息管理的类(有错误消息,错误级别(警告,错误)等等),如ErrMsg.附:
    因为Data层贯穿三层,所以在三层中都可以操作ErrMsg.具体操作如下:
    一个功能开始,定义一ErrMsg对象,当作参数传给功能方法,如果功能方法中捕捉到异常或其它逻辑错误都将错误消息给ErrMsg对象,并将ErrMsg返回到界面层,显示ErrMsg的错误消息.
    (其中根据错误级别,来判断是否要返回到前台界面显示)
      

  5.   

    实现Global.ascx.cs中的
    protected void Application_Error(Object sender, EventArgs e)方法.
    加入自己的错误处理机制
    Exception exception = ctx.Server.GetLastError ();
    if(exception  is XXX类型Exception )
    {
    ...
    }
      

  6.   

    HttpContext.Current.Server.GetLastError ();
      

  7.   

    对于 ASP.NET 整站可以统一再 Applicaton_Error 事件中捕获底层异常,然后实施日志、严重等级处理,对于发布版本,用户最后看到的是不暴露内部实现信息的自定义错误信息同时还有一个页级错误事件 System.Web.UI.Page.Error 可以捕获单页异常
      

  8.   

    所有的页面类继承与自己定义的页面基类, 然后在此页面基类中的Error事件中处理所有页面异常如果是业务层或者数据访问层直接抛出自定义异常进行处理
      

  9.   

    try
    {}
    catch()
    {}
    finall
    {}
    在加上一个错误页面.
    ok!
      

  10.   

    yaoshun1983======》页面大量的finally不是一个好现象~
      

  11.   

    try
    {}
    catch()
    {}
    finall
    {}
    在加上一个错误页面.
    ok!
      

  12.   


    try
    {}
    catch(Exception e)
    {
         //如果方法1有错误
         if(e.TargetSite.Name.ToUpper() == "方法1")
         {}
         //如果方法2有错误
         if(e.TargetSite.Name.ToUpper() == "方法2")
         {}
         //如果方法3有错误
         if(e.TargetSite.Name.ToUpper() == "方法3")
         {}}
    finall
    {}
      

  13.   

    在DB层,做一个返回int类型值的方法,同时也做个捕获异常的方法
    在业务逻辑层,获取从DB层返回的int类型的值,来判断DB是否有异常或者执行是否成功,再做一个返回bool类型值的方法,同时也做个捕获异常的方法。
    try
    catch
    就行啊。
      

  14.   

    数据层真的没有必要加上异常处理的(只要你的语句没有写错的话)
    无论操作是什么结果,你都可以返回一个值(自己指定的)
    用返回来的值在逻辑层做判断不就的了。开发的时候语句要是写错了,自己单步调试能调出来吧。
    交付给用户用的时候try catch finall也就没有什么用了吧(因为逻辑层能根据值得做逻辑判断)
    在说了,finall也不是什么很好的阿。无论有没有错误这里面的语句都要执行的吧。
    为了捕获一个错误而且是自己在开发过程中的错误,感觉太浪费资源了。
    (以上我在存储过程里把对数据库的操作状态都返回来了,在BLL层做的判断)
    个人观点!
      

  15.   

    底层每一步都返回错误try{}catch(Exception e){
    thorw(e);
    }
    UI进行处理
      

  16.   

    try
    {
    }
    catch
    {
    }