当前位置: 首页 > news >正文

建网站 需要签署协议免费网站友情链接

建网站 需要签署协议,免费网站友情链接,热门关键词,怎么建设商业网站java 异常分类 Thorwable类#xff08;表示可抛出#xff09;是所有异常和错误的超类#xff0c;两个直接子类为Error和Exception#xff0c;分别表示错误和异常。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常#xff0c; 这两种异常有很大的区别…java 异常分类 Thorwable类表示可抛出是所有异常和错误的超类两个直接子类为Error和Exception分别表示错误和异常。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常 这两种异常有很大的区别也称之为非检查异常Unchecked Exception和检查异常Checked Exception其中Error类及其子类也是非检查异常。 检查异常和非检查异常 检查异常也称为“编译时异常”编译器在编译期间检查的那些异常。由于编译器“检查”这些异常以确保它们得到处理因此称为“检查异常”。如果抛出检查异常那么编译器会报错需要开发人员手动处理该异常要么捕获要么重新抛出。除了RuntimeException之外所有直接继承 Exception 的异常都是检查异常。非检查异常也称为“运行时异常”编译器不会检查运行时异常在抛出运行时异常时编译器不会报错当运行程序的时候才可能抛出该异常。Error及其子类和RuntimeException 及其子类都是非检查异常。 异常处理分为三个阶段捕获-传递-处理。try……catch的作用是捕获异常throw的作用将异常传递给合适的处理程序。捕获、传递、处理三个阶段任何一个阶段处理不当都会影响到整个系统。下面分别介绍一下常见的异常处理不规范案例。 java 异常处理不规范案例 捕获 捕获异常的时候不区分异常类型捕获异常不完全比如该捕获的异常类型没有捕获到 try{…… } catch (Exception e){ // 不应对所有类型的异常统一捕获应该抽象出业务异常和系统异常分别捕获…… }传递 异常信息丢失异常信息转译错误比如在抛出异常的时候将业务异常包装成了系统异常吃掉异常不必要的异常包装检查异常传递过程中不适用非检查检异常包装造成代码被throws污染 try{…… } catch (BIZException e){ throw new BIZException(e); // 重复包装同样类型的异常信息 } catch (Biz1Exception e){ throw new BIZException(e.getMessage()); // 没有抛出异常栈信息正确的做法是throw new BIZException(e); } catch (Biz2Exception e){throw new Exception(e); // 不能使用低抽象级别的异常去包装高抽象级别的异常这样在传递过程中丢失了异常类型信息 } catch (Biz3Exception e){throw new Exception(……); // 异常转译错误将业务异常直接转译成了系统异常 } catch (Biz4Exception e){…… // 不抛出也不记Log直接吃掉异常 } catch (Exception e){throw e; }处理 重复处理处理方式不统一处理位置分散 try{try{try{……} catch (Biz1Exception e){log.error(e); // 重复的LOG记录throw new e;}try{……} catch (Biz2Exception e){…… // 同样是业务异常既在内层处理又在外层处理}} catch (BizException e){log.error(e); // 重复的LOG记录throw e;} } catch (Exception e){// 通吃所有类型的异常log.error(e.getMessage(),e); }java 异常处理规范案例 1、阿里巴巴Java异常处理规约 阿里巴巴Java开发规范中有15条异常处理的规约其中下面两条使用的时候是比较困惑的因为并没有告诉我们应该如何定义异常如何抛出异常如何处理异常 【强制】捕获异常是为了处理它不要捕获了却什么都不处理而抛弃之如果不想处理它请将该异常抛给它的调用者。最外层的业务使用者必须处理异常将其转化为用户可以理解的内容。【推荐】定义时区分unchecked / checked 异常避免直接使用RuntimeException抛出更不允许抛出Exception或者Throwable应使用有业务含义的自定义异常。 2、异常处理最佳实践 1、使用 try-with-resource 关闭资源。 2、抛出具体的异常而不是 Exception并在注释中使用 throw 进行说明。 3、捕获异常后使用描述性语言记录错误信息如果是调用外部服务最好是包括入参和出参。 logger.error(“说明信息异常信息{}”, e.getMessage(), e) 4、优先捕获具体异常。 5、不要捕获 Throwable 异常除非特殊情况。 6、不要忽略异常异常捕获一定需要处理。 7、不要同时记录和抛出异常因为异常会打印多次正确的处理方式要么抛出异常要么记录异常如果抛出异常不要原封不动的抛出可以自定义异常抛出。 8、自定义异常不要丢弃原有异常应该将原始异常传入自定义异常中。 throw MyException(“my exception”, e); 9、自定义异常尽量不要使用检查异常。 10、尽可能晚的捕获异常如非必要建议所有的异常都不要在下层捕获而应该由最上层捕获并统一处理这些异常。。 11、为了避免重复输出异常日志建议所有的异常日志都统一交由最上层输出。就算下层捕获到了某个异常如非特殊情况也不要将异常信息输出应该交给最上层统一输出日志。 参考 https://zhuanlan.zhihu.com/p/617291696
http://www.w-s-a.com/news/95784/

相关文章:

  • 上海网站建设公司排行建设无障碍网站
  • phpcms网站打不开网页制作网站设计稿
  • 博客网站开发环境wordpress 中英文双语
  • 做网站报价表群辉装wordpress
  • 请人做游戏的网站视觉设计师的工作内容
  • 昆明网站建设知名企业博客网站开发
  • 如何做网站网页免费thinkphp网站后台模板
  • 怎么自己做优惠券网站济南小程序开发
  • 南昌网站专业制作做仿站如何获取网站源码
  • qq钓鱼网站wordpress 企业站模板
  • 推进文明网站建设免费设计公司logo设计
  • 做电脑租赁网站server 2008 网站部署
  • 做网站的公司一年能赚多少钱wordpress作者增加分类插件
  • 苏州尚云网站建设专业摄影网站推荐
  • 020网站开发微信公众号直接链接网站怎么做
  • 学做烘焙的网站某网站注册需要邮箱是怎么弄
  • 网站的特效代码公司网站开发的工作内容
  • 网站制作哪家好商城网站建设预算要多少钱
  • 怎么做律所的官方网站微网站可以做商城吗
  • 通用网站后台管理系统(php版)网站备案ip查询网站查询
  • 制作网站代码吗江阴网站建设推广
  • 汕头建网站wordpress文章网址采集
  • 十大景观设计网站用vue框架做的网站
  • 福建省建设监理网官方网站做外贸网站卖什么东西好
  • 公司做网站排名东莞关键词优化推广
  • 连云港做企业网站公司全网营销与seo
  • 电子毕业设计代做网站wordpress 插件放在那
  • 黄石规划建设局网站怎么做存储网站
  • 网站安装wordpress滨江网站建设
  • 河南官网网站建设一般使用的分辨率显示密度是