文章目录

  • 前言
  • 一、处理异常的方法
  • 二、问题
  • 解决

前言

工作项目中的异常处理


提示:以下是本篇文章正文内容,下面案例可供参考

一、处理异常的方法

一般在开发中,我们会有业务异常和程序异常两种。
往往我们在catch异常的时候会进行重新抛出一个新的异常。
其实这种写法是很不正确的当然由于各个开发人员水平,以及项目的紧凑度,往往会忽略这些事情。简单举例!

示例:

    public void xxx(String xxx) {try {xxx} catch (自定义异常 e) {throw new 新的异常();}catch (Exception e){throw new 新的异常();}}

二、问题

问题还是很明显的,我们就失去了对真实异常的获取,特别在公司中,我们的项目日志打印,很大程度上决定我们对项目错误的定位和解决的时长。正确抛出其异常就显得很重要。毕竟我们catch到异常后,再次抛出就是新实例化一个新的异常对象了,这也就抛去了真实的异常。

解决

其实解决方案多种,仅供参考。
一种就是如下,在catch异常是对相关异常进行打印。

    public void xxx(String xxx) {try {xxx} catch (自定义异常 e) {LogTypeEnum.ETL.error("自定义异常:{}", e);throw new 新的异常();}catch (Exception e){LogTypeEnum.ETL.error("异常:{}", e);throw new 新的异常();}}

第二种就是,将原始异常上抛,特别是在对一个方法层层调用的时候,往往由于异常处理后上抛这种方法,导致问题的定位缓慢。

当然个人编码习惯或者具体业务要求不同,(我有时候也是catch重新抛,不过都是显而易见的错误时这样)以上仅以个人观点,欢迎讨论留言。如果感兴趣,关注一下,感谢!

项目中的异常处理应不应该获取后重新抛?相关推荐

  1. html调用腾讯地图定位当前位置,vue web项目中调用腾讯地图API获取当前位置的经纬度...

    vue web项目中调用腾讯地图API获取当前位置的经纬度 vue web项目中调用腾讯地图API获取当前位置的经纬度 在main.js 中添加一下代码 import axios from 'axio ...

  2. Vue项目中常见问题(55)提交订单、获取订单号、展示支付信息

    目录 gitee仓库地址:https://gitee.com/CMD-UROOT/sph-project/commits/master 业务需求:完成提交订单的业务 1.支付静态组件先完成 Pay静态 ...

  3. java获取项目中的路径_通过java获取当前项目路径

    展开全部 getClass().getResource() 方法获得相对e5a48de588b63231313335323631343130323136353331333332643932路径( 此方 ...

  4. springboot 项目中,如何在jsp页面获取contextPath

    欢迎加群:854228077. 帮助更多java程序员提升技术!资料多,大佬多! 参考:https://blog.csdn.net/Javaer_dog/article/details/8315361 ...

  5. 在Vue2.0项目中与H5项目中获取、设置、清除cookie的一些注意点

    在vue中获取cookie 原生js方法没有直接获取cookie中值的,所以我在vue的项目中我自己写了个获取cookie值的方法(还有删除与设置cookie的方法还没去写,大家一起来补充完善) &l ...

  6. jdbc在项目中的应用

    关于jdbc的介绍详细请参阅百度百科-jdbc 这里关于jdbc的具体实例代码不再累赘,具体实现项目代码里有. 关于数据库使用的连接池使用的c3p0,具体介绍,参阅c3p0-百度百科 项目中,有c3p ...

  7. node14 升级 node16 后 vue2 项目中 sass 报错问题

    起因 不知道因为个什么手贱把之前的 node14 版本卸载了去官网重新下载安装了一下 node,最近版本升级到了 node16,以为应该不会有什么问题吧,结果把项目一跑,我勒个去,一堆飘红的,看控制台 ...

  8. vue项目中使用百度地图功能

    1.百度地图api官方文档: https://lbsyun.baidu.com/index.php?title=jspopularGL 在百度地区去申请一个百度地图key.这个key属于私密的,部分高 ...

  9. 如何在vue项目中系统的使用iconfont字体图标

    如何在vue项目中系统的使用iconfont字体图标 前言 iconfont的特色 官网注册 在项目中使用的方式 前言 今天聊一下前端iconfont的使用方式,前端的图标经过这些年的发展,变得更系统 ...

最新文章

  1. 基于图像的三维模型重建——基础介绍
  2. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框颜色自定义配置)实战
  3. 不懂技术系列--如何快速调试html5页面/手机页面
  4. mysql dump xtrabackup_MySQL--备份恢复【Mysqdump+xtrabackup(XBK)】
  5. Arcface v1 论文翻译与解读
  6. windows 修改nginx端口号_分享Nginx搭建图片服务器简单实现
  7. 【HTML+CSS】(2)CSS Sprite雪碧图
  8. lnmp架构下,织梦二级域名访问m文件夹出现 500错误
  9. office组件导入导出常见异常记录
  10. 举例说明jquery插件的编写方法
  11. 网上书店动态网页设计
  12. EasyDarwin测试
  13. 我的硬盘居然被win10安装工具_科研工具 | SPSS 25中文版软件下载和安装教程|兼容WIN10...
  14. main()打成mian()的后果,切记小心
  15. VMware 中搭建 SylixOS 环境
  16. 如何利用Photoshop进行快速切图
  17. 设计模式之 Interpreter(解释器) 通俗理解
  18. java 写文件filewriter_使用FileReader和FileWriter读取写入文件内容
  19. 用c语言编写rfid读卡系统,USB免驱RFID读写器编程解析之一:智能卡篇
  20. 上海某马培训软件测试工程师第01期就业班课程

热门文章

  1. C#学习笔记(二)运算符 乘方 判断语句 循环语句 比较运算符 逻辑运算符 数组...
  2. 牛客 - 阔力梯的树(树上启发式合并)
  3. 安卓app 获取view的id_隐私保护问题不小 研究表示1325个安卓APP未经授权获取用户数据...
  4. 特征值与特征向量_机器学习和线性代数 - 特征值和特征向量
  5. golang 反射_golang原理篇- nil:接口类型和值类型的区别
  6. (七)boost库之单例类
  7. 【Boost】boost库中thread多线程详解4——谈谈recursive_mutex
  8. 端口复用:隐藏 嗅探与攻击
  9. 比Redis快5倍的中间件,为啥这么快?
  10. 音视频技术开发周刊 | 226