Error和Exception区别:

  • Error:程序无法处理的错误
  • Exception:程序本身可以处理的异常

PantUML语法

1
2
A <|-- B //B继承A
C <|... D //D实现了C
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
@startuml

interface Serializable{
}

class Throwable{
}

class Exception{
}

class Error{
}

class IOError{
}

abstract class VirtualMachineError{
}

class AWTError{
}

class StackOverflowError{
}

class OutOfMemoryError{
}

class IOException{
}

class RuntimeException{
}

class ReflectiveOperationException{
}

class ClassNotFoundException{
}

class EOFException{
}

class FileNotFoundException{
}

class ArithmeticException{
}

class MissingResourceException{
}

class NullPointerException{
}

class IllegalArgumentException{
}

class IndexOutOfBoundsException{
}

class ArrayIndexOutOfBoundsException{
}

class UnknownEntityException{
}

class UnknownTypeException{
}

Serializable <|.. Throwable

Throwable <|-- Exception
Throwable <|-- Error

Error <|-- IOError
Error <|-- VirtualMachineError
Error <|-- AWTError

VirtualMachineError <|-- StackOverflowError
VirtualMachineError <|-- OutOfMemoryError

Exception <|-- IOException
Exception <|-- RuntimeException
Exception <|-- ReflectiveOperationException

ReflectiveOperationException <|-- ClassNotFoundException

IOException <|-- EOFException
IOException <|-- FileNotFoundException

RuntimeException <|-- ArithmeticException
RuntimeException <|-- MissingResourceException
RuntimeException <|-- NullPointerException
RuntimeException <|-- IllegalArgumentException
RuntimeException <|-- IndexOutOfBoundsException
RuntimeException <|-- UnknownEntityException

UnknownEntityException <|-- UnknownTypeException

IndexOutOfBoundsException <|-- ArrayIndexOutOfBoundsException

@enduml

Java中异常类关系图,UML关系图如下所示

24_01