1 package p1.exception;
2
3
4 /*
5 * 异常:是在运行时期发生的不正常情况。
6 *
7 *
8 * 在java中用类的形式对不正常情况进行了描述和封装对象。
9 *
10 * 描述不正常的情况的类,就称为异常类。
11 *
12 * 以前正常流程代码和问题处理代码相结合,
13 * 现在将正常流程代码和问题处理代码分离。提高阅读性
14 *
15 * 其实异常就是java通过面向对象的思想将问题封装成了对象
16 *
17 * 用异常类对其进行描述。
18 * 不同的问题用不同的类进行具体的描述。比如角标越界。空指针等等
19 *
20 * 问题很多,意味着描述的类也很多。
21 * 将其共性向上抽取,形成了异常体系。
22 *
23 * 最终问题(不正常情况)就分成了两大类。
24 * Throwable:无论是error,还是异常,问题发生就应该可以抛出,让调用者知道并处理
25 * //该体系的特点就在于Throwable及其所有的子类都具有可抛性。
26 * 可抛性到底指的是什么呢?怎么体现可抛性呢?
27 * 其实是通过两个关键字来体现的。
28 * throws throw,凡是可以被这两个关键字所操作的类和对象都具备可抛性。
29 * |--1,一般不可处理的。Error类
30 * 特点:是由jvm抛出的严重性的问题。
31 * 这种问题发生一般不针对性处理。直接修改程序
32 * |--2,可以处理的。Exception类
33 *
34 * 该体系的特点:
35 * 子类的后缀名都是用其父类名作为后缀,阅读性很强。
36 *
37 *
38 *
39 *
40 */
41 public class ExceptionDemo {
42
43 public static void main(String[] args) {
44 // TODO Auto-generated method stub
45 int[] arr = new int[1024*1024*800];//java.lang.OutOfMemoryError: Java heap space
46 arr = null;
47 System.out.println(arr[3]);
48 sleep(-5);
49 }
50
51 /*public static void sleep1(int time) {
52 if (time<0) {
53 new FuTime();//就代表着时间为负的情况,这个对象中会包含着问题的名称,位置等信息
54 // 处理办法
55 // 处理办法
56 // 处理办法
57 }
58 if (time>100000) {
59 new BigTime();
60 // 处理办法
61 // 处理办法
62 // 处理办法
63 }
64 System.out.println("我睡。。。"+time);
65 }*/
66
67 public static void sleep(int time) {
68 if (time<0) {
69 // /*抛出*/ new FuTime();//就代表着时间为负的情况,这个对象中会包含着问题的名称,位置等信息
70
71 }
72 if (time>100000) {
73 // /*抛出*/ new BigTime();//对象要具有可抛性才能抛出
74
75 }
76 System.out.println("我睡。。。"+time);
77 }
78 }
79 /*
80 * class FuTime{
81 *
82 * }
83 * class BigTime{
84 *
85 * }
86 */