什么时候要catch并抛出异常

自从接触Catch开始,就知道要catch不确定的代码然后抛出异常.

但是 随着项目层级调用越来越复杂,有些层要调用N端不确定的代码,各种Catch,并对exception的各种处理. 代码乱不说,也不好阅读维护.

一直在想 在哪一层Catch,throw,哪一次做处理.

知道今天才认定应该按照这样思维模式来做

底层官员向上一级反馈问题,下级必须要给上级一个确切(ErrCode,ErrDesc)的说法,不容许含糊其辞的推脱(Catch ,throw ex)

但是当某个级别的官员上头已经是最大的官了(UI层),这个时候为了防止万一下级出现了未知的纰漏,导致不好交差,还是不要把结论说死,需要给上面一个善意谎言,

给自己留条后路,这个时候我们需要cathch,同时友善提示.并将详细异常铭记于心(log),最后时候复查.并做纠正

综上,所有不予UI打交道的层,都应该将各种异常囊括与ErrCode和ErrDesc中,代码中不需要catch,

到了与UI打交道的层,才需要Catch,并包装异常,友善提示.

时间: 2024-10-17 04:13:40

什么时候要catch并抛出异常的相关文章

T-SQL编程中的异常处理-异常捕获(try catch)与抛出异常(throw)

原文:T-SQL编程中的异常处理-异常捕获(try catch)与抛出异常(throw) 本文出处: http://www.cnblogs.com/wy123/p/6743515.html T-SQL编程与应用程序一样,都有异常处理机制,比如异常的捕获与异常的抛出(try catch throw),本文简单介绍异常捕获与异常抛出在T-SQL编程中的实际使用 . 异常处理简单说明 异常捕获在应用程序编程中非常常见,提供了处理程序运行时出现的任何意外或异常情况的方法刚毕业的时候对于异常处理迷茫不解,

try catch 事务不会滚

在spring机制中,在配置事务后,如果采用try catch 捕获异常后,因为异常已经被捕获,所以事务不会滚,从而产生许多脏数据.解决办法: 1.在catch中抛出异常,(throw new RuntimeException("");)且为运行时异常,抛出普通异常不会滚. 2.如果为注解配置,那么可以将 try (method) catch 的method,单独提出成一个方法,那么在此方法上增加注解@Transactional,那么此方法会被会滚, 且异常可以正常捕获.合理使用try

最近几天的搜集

//获取或设置一个值,该值指示参数是只可输入.只可输出.双向还是存储过程返回值参数.默认为input//parameter.Value == null---其实实现的是,C#中的Null和数据库中的DBNull相对应 if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null

内联函数详解

什么是内联性和外联函数 类的成员函数可以分为内联函数和外联函数.内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内.而说明在类体内,定义在类体外的成员函数叫外联函数.外联函数的函数体在类的实现部分. 内联函数在调用时不是像一般的函数那样要转去执行被调用函数的函数体,执行完成后再转回调用函数中,执行其后语句,而是在调用函数处用内联函数体的代码来替换,这样将会节省调用开销,提高运行速度. 内联函数与前面讲过的带参数的宏定义进行一下比较,它们的代码效率是一样的,但是内联函数要优于宏定义

C++中的异常处理

1.C++异常处理 (1)C++内置了异常处理的语法元素,try...catch...,这是两个新的关键字在C++中 @1:try语句代码块中用来处理正常代码逻辑 @2:catch语句代码块中用来处理异常情况 @3:try语句中的异常由对应的catch语句进行处理 try { douuble r = divide(1, 0); } catch(...) { cout << "Divide by zero..." << endl; } @4:try语句代码块中用来

20145331《Java程序设计》第5周学习总结

20145331<Java程序设计>第5周学习总结 教材学习内容总结 第八章 概述 Java异常机制主要依赖于try.catch.finally.throw.throws五个关键字. 语法格式如下: try { 被检代码; } catch(异常类 变量) { 处理异常的代码(处理方式): } 关键词try后的一对大括号将一块可能发生异常的代码包起来,称为监控区域.Java方法在运行过程中出现异常,则创建异常对象.将异常抛出监控区域之 外,由Java运行时系统试图寻找匹配的catch子句以捕获异

J2EE引擎出现java.lang.UnsatisfiedLinkError:&#160;CC错误的原因

运行JSP报表程序页面出现java.lang.UnsatisfiedLinkError: CC错误有以下几种原因和处理方法: 1.请查看控制台的错误信息 a:如果控制台的消息是类似 java.lang.UnsatisfiedLinkError: no MRChkLib in java.library.path,Error loading library MRChkLib 这样的错误信息,那么是因为MRChkLib.dll没有拷贝到windows的System32目录下. (MRChkLib.dl

ADO.NET详解----核心对象的使用

一.Connection对象 指定某个具体数据源以及提供登陆方式及用户名与密码. Connection对象的主要成员: 1.ConnectionString属性:连接字符串,指定要操作的数据库以及登录方式和用户名密码. 连接字符串的两种配置过程: 利用ConnectionString直接在应用程序中配置. 利用配置文件配置.在WINFORM中利用App.config文件配置:在WEB中利用web.config文件配置. 2.open()方法:打开与数据库的连接 若在连接数据库过程中配置连接字符串

走进C++程序世界------异常处理

一. 概述 C++自身有着非常强的纠错能力,发展到如今,已经建立了比较完善的异常处理机制.C++的异常情况无非两种,一种是语法错误,即程序中出现了错误的语句,函数,结构和类,致使编译程序无法进行.另一种是运行时发生的错误,一般与算法有关. 关于语法错误,不必多说,写代码时心细一点就可以解决.C++编译器的报错机制可以让我们轻松地解决这些错误. 第二种是运行时的错误,常见的有文件打开失败.数组下标溢出.系统内存不足等等.而一旦出现这些问题,引发算法失效.程序运行时无故停止等故障也是常有的.这就要求