关于异常处理

问题描述

最近在开发一个WinForm应用程序,用的DAO--controller--form3层架构,程序最易出错的是在dao数据层,我捕捉到后,是一层层往上抛到form处理,还是就直接Dao层处理呢,怎么样使异常更友好呢,没什么经验,求指点.

解决方案

解决方案二:
你要怎么处理?给用户一个“提示”?这当然是最外层表现层做的事情,数据层怎么可能知道如何给用户提示?
解决方案三:
比如说,同样是一套类库,放到手机端它可能就需要“振动一下”然后调用手机的模态对话框;放到类似asp.net也页面程序里就需要向当前页面动态插入javascript脚本并且处理提示之后的回发;放到asp.netashx这类程序就需要给出一个http错误码;放到wpf程序可能就需要调用windowsnotifyicon气泡程序以及一个ErrorWindow窗体;放到其它类型的程序有其它的各种表现形式.......在不应该纠结的层面去纠结“使异常更友好”其实根本是成事不足的。
解决方案四:
引用2楼sp1234的回复:

比如说,同样是一套类库,放到手机端它可能就需要“振动一下”然后调用手机的模态对话框;放到类似asp.net也页面程序里就需要向当前页面动态插入javascript脚本并且处理提示之后的回发;放到asp.netashx这类程序就需要给出一个http错误码;放到wpf程序可能就需要调用windowsnotifyicon气泡程序以及一个ErrorWindow窗体;放到其它类型的程序有其它的各种表现形式.......在不应该纠结的层面去纠结“使异常更友好”其实根本是成事不足的。

那就是把数据层捕捉到的异常往上抛吗?没有开发过大型的软件系统,没有经验,软件架构什么都不是很清楚,有时候会比较以后,这个异常倒地是抛上去,还是直接message.show掉..
解决方案五:
你指的异常处理是什么样的处理?写日志还是其他?如果是写日志,看你是写到数据库还是txt,不同方式处理异常的地方有所区别。提示是form那边的事情,你可以在controllortrycatch写日之后,返回一个结果,结果内容包括此次操作是否成功,失败的话,回传个代码,form那边根据代码匹配对应的提示信息进行提示。
解决方案六:
当然应该向上抛。
解决方案七:
这个异常倒地是抛上去,还是直接message.show掉怎么可能message.show,如果是网站,服务,控制台,你show给谁看如果是多线程同时执行,同时都连接不上,那你难道show一大堆窗体出来捣乱?显示就应该UI层去处理,DAL层不要管如何显示你其实应该纠结的是到底在catch里捕获异常后是直接throw出去,还是增加一些内容再throw出去,还是throw一个自定义故障号,还是不throw而在返回值的地方返回错误信息.
解决方案八:
楼上说的对。目测楼主是想增加点内容在输出,或者说整理后输出个比较容易理解的提示。catchthrow的话,整个具体的调用过程所有方法,全部是throw,我觉得应该在你调用的地方,或者调用的接口内部处理。处理的部分独立出来就完事了。
解决方案九:
catch里记录log,便于跟踪处理。给客户show出来的是通俗易懂的提示,你给客户看一堆Exception,客户也看不懂。
解决方案十:
向上抛,由UI端决定如果进行交互

时间: 2024-10-28 05:02:53

关于异常处理的相关文章

异常处理:android中添加按钮事件,出现NullPointerException

问题描述 异常处理:android中添加按钮事件,出现NullPointerException 解决方案 在maincsactivity的oncreate的72行找,有没有对象为null 解决方案二: 对象为空,要么你的按钮对象还没初始化,要么点击代码里有空对象,你调试一下便知 解决方案三: 空指针异常,没什么难找的,Debug一下即可很快找到: 解决方案四: 空指针异常,按钮对象没有初始化 解决方案五: 可能你声明了一个View,但是你没有findViewById,或者findViewById

异常处理汇总-后端系列

异常处理汇总:http://www.cnblogs.com/dunitian/p/4599258.html SignalR   01.SignalR:"System.Reflection.TargetInvocationException"类型的未经处理的异常在 mscorlib.dll 中发生 http://www.cnblogs.com/dunitian/p/5232229.html 02.SignalR代理对象异常:Uncaught TypeError: Cannot read

一个用于J2EE应用程序的异常处理框架

在大多数Java项目中,大部分代码都是样板代码.异常处理就属于此类代码.即使业务逻辑只有3到4行代码,用于异常处理的代码也要占10到20行.本文将讨论如何让异常处理保持简单和直观,使开发人员可以专心于开发业务逻辑,而不是把时间浪费在编写异常处理的样板代码上.本文还将说明用于在J2EE环境中创建和处理异常的基础知识和指导原则,并提出了一些可以使用异常解决的业务问题.本文将使用Struts框架作为表示实现,但该方法适用于任何表示实现. 使用checked和unchecked异常的场景 您是否曾经想过

PHP错误处理及异常处理笔记

 给新人总结一下PHP的错误处理. PHP提供了错误处理和日志记录的功能. 这些函数允许你定义自己的错误处理规则,以及修改错误记录的方式. 这样,你就可以根据自己的需要,来更改和加强错误输出信息以满足实际需要. 通过日志记录功能,你可以将信息直接发送到其他日志服务器,或者发送到指定的电子邮箱(或者通过邮件网关发送),或者发送到操作系统日志等,从而可以有选择的记录和监视你的应用程序和网站的最重要的部分. 错误报告功能允许你自定义错误反馈的级别和类型,可以是简单的提示信息或者使用自定义的函数进行处理

JAVA【异常二】异常处理机制

Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮.易于调试.异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错? 为什么出错? 在有效使用异常的情况下,异常类型回答了"什么"被抛出,异常堆栈跟踪回答了"在哪"抛出,异常信息回答了"为什么"会抛出.   在Java 应用程序中,异常处理机制为:抛出异常,捕捉异常. 抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运

前端-java web 全局异常处理 如何配置

问题描述 java web 全局异常处理 如何配置 怎样配置java web 前端在访问该项目中根本不存在的方法的时候 跳转异常页面啊? 解决方案 java web异常处理java web 中几种异常处理Java web的几种异常处理 解决方案二: 看你使用什么技术了.要是ssh框架,直接使用struts2或者spring mvc的拦截器就行,如果是servlet,那就自己写一个拦截器. 解决方案三: 前端访问项目中不存在的方法是什么意思? 页面调用脚本方法不存在的时候浏览器是会执行异常的. 解

Spring4.1新特性——异步调度和事件机制的异常处理

Spring 4.1对异步调用提供了AsyncResult及SuccessCallback.FailureCallback.和异常处理的支持:对事件调度也提供了相应的异常处理器.   1.事件调度异常处理器 1.1.定义异常处理器: Java代码   public class MyErrorHandler implements ErrorHandler {       @Override       public void handleError(Throwable throwable) {  

异常处理汇总-服务器系列

异常处理汇总:http://www.cnblogs.com/dunitian/p/4599258.html   公司/本地服务器系列 1.IIS7.5+WebConfig实现页面伪静态和301重定向 http://www.cnblogs.com/dunitian/p/4324341.html 2.服务器环境~某个页面无法访问的处理 http://www.cnblogs.com/dunitian/p/4325027.html 3.win7+IIS7下木有4.0框架问题的解决方案 http://ww

异常处理汇总-数据库系列

异常处理汇总:http://www.cnblogs.com/dunitian/p/4599258.html SQLServer 1.[SQL]关于无法附加文件的错误 http://www.cnblogs.com/dunitian/p/4165249.html 2.在sql server中建存储过程,如果需要参数是一个可变集合怎么处理? http://www.cnblogs.com/dunitian/p/4501268.html 3.关于Sa系列用户不能登录,只能本地windows身份验证的说明

Node.js之异常处理

   记得刚刚开始学Node.js时自己尝试着写了一个简单的http服务器,跟以前接触过的php相比感觉更自由,编起码来也更爽了.但是某天发现稍微一个很小的错误就导致整个http进程挂掉了,顿时有种不靠谱的感觉啊,跟php比起来感觉Node.js容错能力确实弱了很多,起码一个php文件出错也不会导致所有的服务都挂掉.           后来接触到Node.js web开发框架后感觉也不是那么轻易就让整个进程都挂掉的,于是便想研究下Node.js究竟是如何来处理各种异常从而避免整个进程挂掉的.