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

上海浦东建筑建设网站污水处理工程网站怎么建设

上海浦东建筑建设网站污水处理工程,网站怎么建设,wordpress cdc,app开发和网站开发的区别此文已由作者谢蕾授权网易云社区发布。欢迎访问网易云社区#xff0c;了解更多网易技术产品运营经验。前言我们对于“异常处理”这个词并不陌生#xff0c;众多框架和库在异常处理方面都提供了便利#xff0c;但是对于何种处理才是最佳实践#xff0c;也是众说纷纭。异常处…此文已由作者谢蕾授权网易云社区发布。欢迎访问网易云社区了解更多网易技术产品运营经验。前言我们对于“异常处理”这个词并不陌生众多框架和库在异常处理方面都提供了便利但是对于何种处理才是最佳实践也是众说纷纭。异常处理是否得当直接关系到软件的健壮性今天就谈谈我对异常处理这件事儿的拙见。首先先说一下异常处理的通俗解释当危险或知道事情不对的时候做出的反馈。目录结构Java的异常分类常见的异常处理的方法推荐的实践方式1. Java的异常分类先简单用图介绍一下Java的异常分类JAVA这种面向对象的语言同样把异常当作对象来处理Throwable作为所有异常的超类然后定义了许多异常类将这些异常类分为两大类错误Error和异常Exception。其中Exception异常类又分为RuntimeException和Checked Exception(也叫非运行时异常)。 Error是程序无法处理的错误比如OutofMemoryError、TheadDeath等。Exception是程序本身可以处理的异常应当尽可能去处理这些异常。运行时异常都是RuntimeException类及其子类异常这些异常是不检查异常程序中可以选择捕获处理也可以不处理,如NullPointerException。通常这些异常一般是由错误代码逻辑引起的我们应该从逻辑角度尽可能避免这类异常的发生。 非运行时异常从程序语法角度讲是必须进行处理的异常如果不处理程序就不能编译通过。如IOException 、SQLException等以及用户自定义的异常一般情况下不自定义运行时异常。2. 常见的异常处理方法根据Java工程分层的思想异常处理也是基于分层的思想。每层都和他的上下层之间都有一个契约契约内容中就包含了异常处理。任何一层都可能遇到不测如果遇到了未知的错误不知道如何处理时通常的做法就是愉快的向上层抛出一个异常渴求有一层能正确处理掉这个可怜的错误。我们常用的Java异常处理机制通常依赖于try、catch、finally、throw、throws。 常见的异常处理方式如下吞掉并抛出打印log并抛出嵌套处理并抛出忽略异常2.1 吞掉并抛出try{...}catch(Exception e){throw new ApiException(ApiErrorCode.SqlErr, Failed to get JobID.);}注ApiException是程序自定义的异常与SQLEXCEPTION、RUNTIMEEXCEPTION等都属于异常的一种。 比较明显这种处理方式导致丢失了真实的错误信息不利于上层做出正确的处理。非常不好的实践。2.2 打印log并抛出try{boolean ret  sendNotify(info);if(ret){i.remove();}}catch(ParseException | IOException e){logger.error(unexpected exception happened while send notify to client! remove notify message! jobID:   info.getJobID(), e);throw e;}这个做法想必大家经常看到在许多工程中都用了这样的做法。但是这样的处理方式也在一定环境下也有问题比如当异常发生在调用层次较深的底层时同样的错误信息处理方式会导致我们为了定位问题将看到无数的相同错误信息。所以具体的异常处理方法还需要综合上下文来处理。2.3 嵌套处理并抛出try{...}catch(SQLException e){throw new XxxException(Error in Xxx, e);}这段代码catch住了sql异常然后将其封装为另外一种异常抛出期望遇到知心人能读懂它的良苦用心。2.4 忽略异常try{...}catch(SQLException ex){ex.printStacktrace();}经常看到这样的低级错误吗是的开发者无情的忽略了异常并且只把异常信息输出到控制台然后程序仍然继续运行非常有可能导致更多的异常。推荐的实践方式此节不敢称为最佳实践因为一切都会随着空间和时间的变化而变化。只能说下笔者见过的对异常处理的一些推荐做法。如有不适当的地方请大家指正。如果不知道如何处理异常最好在定义方法时throws该异常可以声明多个异常。细化异常尽可能的指定具体的异常方便问题定位尽量不要使用范围太大的Exception。但是有时一定要最大范围捕获的比如一些线程不想让它意外退出那就必须通过最外层捕获它了。避免过大的try块(对所有可能出现异常的代码进行try块的包装)这样不利于分析问题产生的原因。一个try对应多个catch时catch的异常定义可以由精确到一般。不要无视捕获的异常小心因小失大。捕获到后要么直接抛出要么重新抛出新类型的异常。不要在finally块中return或throw等终止方法的语句这样会导致try或catch块中的return或throw失效。鼓励程序适时的进行自定义异常类(非检测异常的一种)因为异常的类名往往包含了很多有用信息我们封装后的异常类可以更加具体的根据代码或业务处理区分异常类型方便查找错误。调试时可以使用printStackTrace()方法但是发布后要避免使用该方法。管理好自己和其他层之间的异常处理契约精神注意不要把自己能处理的异常抛给别人。网易云免费体验馆0成本体验20款云产品更多网易技术、产品、运营经验分享请点击。
http://www.pierceye.com/news/959791/

相关文章:

  • 四川省营山县西城建筑公司网站租服务器 wordpress
  • 绿色蔬菜网站模板昆明软件开发公司排名
  • 东台做淘宝网站爱站seo工具包免费版
  • 做网站运营的简历学做家庭树网站
  • 专业做企业网站网页制作与网站建设 在线作业
  • 开放大学门户网站建设方案动易网站模版的制作
  • 怎样做个网站聊城网站推广动态
  • 门户网站优化南阳网站制作哪家好
  • 环球易购招聘网站建设宜昌最权威网站建设公司
  • 建设银行官网首页网站南山片区怎么免费制作一个网站
  • 100个免费推广网站的排名wordpress改变默认后台登录地址
  • 做爰片免费观看网站腾讯广点通
  • 上海小企业网站建设我想找个人做网站
  • 第一代网站建设技术wordpress设置金币
  • 邯郸移动网站建设价格制作移动端网站价格
  • wordpress设置多站点盐城公司做网站
  • 便宜建站空间深圳品牌网站设计格
  • 网站 建设可行性报告做公司网站的平台
  • 什么网站内链建设建设专业网站怎样收费
  • wordpress 图片站主题seo前景
  • jsp编写网站网站开发售后工作
  • 门户网站建站目标泰安招聘信息最新招聘2022
  • 电商网站建设效果app技术
  • 关于文化的网站模板做免费小说网站怎样赚钱
  • 做外贸的人常用的网站黄骅贴吧二手房
  • 网站建设科目提供网站建设教学视频
  • iis搭建网站教程win10淘宝客网站建设的策略
  • 怎么做一个网站 免费90平方设计
  • 网站建设的目的与意义是什么东营网站建设教程
  • 盐城seo网站优化珠海微信网站