java异常复习

1、检查性异常:编译时会发现的异常。自定义检查性异常要继承Excepiton。

2、非检查性异常:运行时产生的异常。RuntimeExcepiton及其子类,自定义非检查性异常要继承RuntimeExcepiton。

3、捕获异常:如果有可能的异常产生,一般编译器会自己给你加上try/catch框的。

try{
			
			//可能产生异常的语句
			
		}catch(Exception e){
			
			//捕获异常之后,对异常的操作
			
			
			
			
		}finally{
			
			//异常操作玩,必须要执行的语句,比如关闭IO什么的
			
		}

4、finally:不是必须的。一般先执行catch里面的语句,再执行finially。如果catch里面第一句话是return,那么先执行finally。

5、throws:如果一个函数会抛出检查性异常,那么需要在声明的时候加上throws声明要抛出的异常,用于在外部捕获和处理。

6、throw:直接抛出一个异常。

 

package exceptionTest;


public class main {
	
	public static void main(String args[]){
		
		int a[] = new int[2];
		a[0]=1;
		a[1]=2;
		
		//简单的捕获异常,以及使用异常对象的方法
		try{
			
			System.out.println(a[3]);
			
		}catch(Exception e){
			
			System.out.println(e);
			
			
			
		}finally{
			
			System.out.println("异常!");
			
		}
		
		
		
		//外部处理test内部抛出的异常
		try {
			test();
		} catch (Exception e) {
			System.out.println(e);
		}
		
		
		
	}
	
	static class myException extends Exception{
		
		
		public myException(){
			super();
		}
		
		public String toString(){
			
			return "myException";
			
		}
		
	}
	
	
	//如果一个函数可能会抛出 检查性 异常,必须用throws声明
	//静态方法里面使用静态内部类
	public static void test() throws Exception{
		
		myException e = new myException();
		
		
		throw e;
		
			
	}
	

}

 

 

posted @ 2016-10-20 11:52  wzb的QQ空间  阅读(233)  评论(0编辑  收藏  举报