异常

本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)
b站视频

1. 异常的体系结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
java.lang.Throwable
|-----java.lang.Error:一般不编写针对性的代码进行处理。
|-----java.lang.Exception:可以进行异常的处理
|------编译时异常(checked)
|-----IOException
|-----FileNotFoundException
|-----ClassNotFoundException
|------运行时异常(unchecked,RuntimeException)
|-----NullPointerException
|-----ArrayIndexOutOfBoundsException
|-----ClassCastException
|-----NumberFormatException
|-----InputMismatchException
|-----ArithmeticException

2.从程序执行过程,看编译时异常和运行时异常


编译时异常:执行javac.exe命名时,可能出现的异常
运行时异常:执行java.exe命名时,出现的异常

3.常见的异常类型,请举例说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//******************以下是运行时异常***************************
//ArithmeticException 算术异常
@Test
public void test6(){
int a = 10;
int b = 0;
System.out.println(a / b);
}

//InputMismatchException
@Test
public void test5(){
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
System.out.println(score);
scanner.close();
}

//NumberFormatException
@Test
public void test4(){

String str = "123";
str = "abc";
int num = Integer.parseInt(str);
}

//ClassCastException 类型转换异常
@Test
public void test3(){
Object obj = new Date();
String str = (String)obj;
}

//IndexOutOfBoundsException 数组角标越界
@Test
public void test2(){
//ArrayIndexOutOfBoundsException
// int[] arr = new int[10];
// System.out.println(arr[10]);
//StringIndexOutOfBoundsException
String str = "abc";
System.out.println(str.charAt(3));
}

//NullPointerException 空指针
@Test
public void test1(){

// int[] arr = null;
// System.out.println(arr[3]);

String str = "abc";
str = null;
System.out.println(str.charAt(0));

}

//******************以下是编译时异常***************************
@Test
public void test7(){
// File file = new File("hello.txt");
// FileInputStream fis = new FileInputStream(file);
//
// int data = fis.read();
// while(data != -1){
// System.out.print((char)data);
// data = fis.read();
// }
//
// fis.close();

}

异常
http://yuanql.top/2023/01/07/03_java基础编程/07_异常处理/异常/
作者
Qingli Yuan
发布于
2023年1月7日
许可协议