异常的基本概念是用名称掉表发生的问题,并且异常的名称可以望文生义。
graph TD
A(开始) -->B[程序发生异常]
B --> C[实例化异常对象]
C --> D{是否有try?}
D -->|true|E{catch?}
D -->|false|F[输出异常信息]
E -->|true|I[处理异常]
E -->|false|G{catch?}
G -->|true|J[处理异常]
G -->|false|H{存在finally}
I -->H
J -->H
H -->|true|K[执行finally代码]
H -->|false|F
K -->L{是否已处理}
L --> |true|M[其他程序]
L --> |false|F
M --> N(结束)
F --> N
应该在下列情况下使用异常
- 在恰当的级别处理问题(指导该如何处理的情况下捕获异常)
- 解决问题并且重现调用产生的异常的方法
- 进行少许修补,然后绕过异常发生的地方继续执行
- 用别的数据进行计算,以代替方法预计会返回的值
- 把当前运行环境下能做的事情尽量做完,然后把==相同的==异常重抛到更高层。
- 把当前运行环境下能做的事情尽量做完,然后把==不同的==异常重抛到更高层。
- 终止程序
- 进行简化(如果你的异常模式使的问题变的太复杂,那就最好不要用异常)
- 让类库和程序变得更安全
Error和Exception的区别
throws 和throw的区别
Exception 和RuntimeException区别
在Java中什么是内存不足错误?
-在Java中,OutOfMemoryError是 java.lang.VirtualMachineError的一个子类,当堆内存耗尽时会被JVM抛出。我们能通过设置Java选项来提供更大的内存供应用使用来达到修复的目的。
java MyProgram -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=256m
Java中的检查型异常和非检查型异常有什么区别?