Java
								
								中的异常类,包括内置的异常类以及自定义的异常类,都直接或者间接地继承至
								
										java.lang.Throwable
								
								类。
						
				
		
		
				
						
								
								
						
				 
		
				
						
								
										
												1.
										
										       
								
						
				
				
						
								
										两个主要分支:
								
						
				
		
		
				
						
								在
								
										java.lang
								
								包中,我们可以看到
								
										Throwable
								
								类有两个直接子类:
								
										Error
								
								类和
								
										Exception
								
								类,如图所示:
						
				
		
		
				
						
								
								
						
				 
		
				
				 
		
				
						
								
								
										异常相关类图
								
						
				
		
		
				
						
								
								
						
				 
		
				
						
								 
								
										图 1. java异常类型层次
								
								   
						
				
		
		
				
						
								
								
						
				 
		
				
						
								
										        Error
								
								类及其子类描述了
								
										java
								
								运行时系统的内部错误和资源耗尽错误。出现这样的错误的,除了通知用户,并接尽力使程序安全地终止之外,没有更好的办法。
						
				
		
		
				
						
								
								
						
				 
		
				
						
								
										        Exception
								
								类的层次结构又分为两个分支:一个分支由
								
										RuntimeException
								
								派生,另外一个分支包含除
								
										RuntimeException
								
								类之外的异常类。
						
				
		
		
				
						
								
								
						
				 
		
				
						
								
								
						
				 
		
				
						
								
								
						
				 
		
				
						
								
								
						
				 
		
				
						
								
										
												2.      
										
								
						
						
								
										未检查的异常
										
												(unchecked exception)
										
								
								
										和已检查的异常
										
												(checked exception)
										
								
						
				
		
		
				
						
								
										
										
								
						
				 
		
				
						
								未检查的异常:派生至
								
										Error
								
								类和
								
										RuntimeException
								
								类的所有异常类
								
										(
								
								图中红色所示
								
										)
								
								。
						
				
		
		
				
						
								已检查的异常:除未检查的异常类之外的异常类
								
										(
								
								图中黄色所示
								
										) 
								
								。
						
				
		
		
				
						
								
								
						
				 
		
				
						
								
										Java
								
								的编译器检查代码中所有的已检查的异常类是否都提供了异常处理程序,如果没有的话,将报错;代码中不需要显示的声明未检查的异常,因为这些异常要么
								
										Error
								
								,代表
								
										java
								
								运行时系统的内部错误;要么是
								
										RuntimeException
								
								,这种错误是由程序员引起的错误,完全可以修正代码解决。