zoukankan      html  css  js  c++  java
  • 第四节:抛出异常

     

    实现自己的方法时,如果方法无法完成方法名指定的任务,就应抛出一个异常,抛出异常时要考虑两个问题。

    第一个问题是抛出什么Exception派生类型。应选择一个有意义的类型。要考虑调用栈中位于高出的代码,要知道那些代码如何判断一个方法失败,以便执行一些得体的恢复代码。可直接利用FCL中定义好的一个类型,但FCL中也许找不到一个和你想表达的意思完全匹配的类型,所以可能需要定义自己的类型,只要它最终从Exception派生就好。

    如果希望定义一个异常类型层次结构,强烈建议让这个浅而宽,以创建尽量少的基类。原因是基类的作用是将大量的错误当做一个错误,而这通常是危险的。基于同样的考虑,永远都不要抛出一个Exception对象,抛出一起类型时也要特别谨慎。

    第二个问题是向异常类型的构造器传递什么字符串消息。抛出异常时,应包含一条字符串消息,详细说明方法为什么没有完成任务。如果异常被捕捉到并进行了处理,用户就看不到该字符串消息,但是,如果异常成为一个未处理的异常,消息通常会被写入日志。未处理的异常意味着程序存在一个真正的bug,开发人员必须修复该bug。最终用户没有源代码或能力去修复bug并重新编译程序。实际上,这个字符串消息最终不应该向用户显示,所以,字符串消息可以包含非常详细的技术细节,以帮助开发人员修正代码。

    另外,由于所有开发人员不得不讲英语,所以通常不必本地化异常字符串消息。但是,如果要构建一个非英语开发人员使用的类库,就可能要本地化字符串消息。微软以本地化FCL抛出的异常消息,因为全世界的开发人员都要用这个类库。

     

  • 相关阅读:
    mac idea 更换主题
    记一次Sonarqube踩坑实录
    Mysql 常用数据类型
    Spring Cloud 整合分布式链路追踪系统Sleuth和ZipKin实战,分析系统瓶颈
    git clone克隆github仓库慢,问题解决
    SpringBoot 解决跨域问题
    Android 中的敏感信息泄露
    Drozer 测试 APP
    Drozer 安装踩坑日记
    安卓测试笔记--工具安装
  • 原文地址:https://www.cnblogs.com/bingbinggui/p/4544821.html
Copyright © 2011-2022 走看看