参考文献:《Java疯狂讲义》(第三版)
异常
知识点:对于构造大型、健壮、可维护的应用而言,错误处理是整个应用需要考虑的是重要方面,曾经有一个教授告诉我:国内的程序员做开发时,往往只做了“对”的事情!他这句话有很深的遗憾——程序员开发程序的过程,是一个创造的过程,这个过程需要有全面的考虑,仅做“对”的事情是远远不够的。
知识点:
1、无法穷举所有的异常情况。因为人类的知识的限制,异常情况总比可以考虑到的情况多,所以程序总是不够健壮。
2、错误处理代码和业务实现代码混杂。这种错误处理和业务实现混则的代码严重影响程序的可读性,会增加程序维护的难度。
Error错误,一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,动态链接失败,这种错误无法恢复或者不可能捕捉,因此应用程序不应该试图使用catch来捕捉Error对象
知识点:
异常捕获时,一定要记住先捕获小异常,再捕获大异常。
访问异常信息
所有的异常对象都包含了如下几个常用方法:
1、getMessage():返回该异常的详细描述字符串。
2、printStackTrace():将该异常的跟踪栈信息输出到标准错误输出。
3、printStackTrace(PrintStream s):将该异常的跟踪栈信息输出到指定输出流
4、getStackTrace():返回该异常的跟踪栈信息。
Checkde异常和Runtime异常:
Java的异常被分为两大类:Checked异常和Runtime异常(运行时异常)。所有的RuntimeException类及其子类的实例都被成为Runtime异常,其他则称为Checked异常。
Checked异常体现了Java的设计哲学——没有完善错误处理的代码根本就不会执行。
异常链:
对于企业级应用而言,常常有严格的分层关系,上层功能的实现严格依赖于下层的API,也不会跨层访问。
表现层:用户界面——API——>中间层:实现业务逻辑——API——>持久层:保存数据
异常处理规则:
1、使程序代码混乱最小化。
2、捕获并保留诊断信息。
3、通知合适的人员。
4、采用合适的方式结束异常活动。
不要过度使用异常