java异常

 

 

1

异常在子父类覆盖中的体现:
1,子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类.
2,如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集.
3,如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常
如果子类方法发生了异常,就必须要进行try处理,绝对不能抛。

 

throwsthrow的区别

Throws使用在函数上

Throw使用在函数内

Throws后面跟的异常类,可以跟多个,用逗号隔开

Throw后跟的异常对象

 

RuntimeException 运行时异常

如果在函数内抛出该异常,函数上可以不用声明,编译一样通过

如果在函数上声明了该异常,调用者可以不用进行处理.

 

对于异常分两种:

1,编译时被检测的异常.

2.编译时补被检测的异常(运行时异常.RuntimeException以及其子类)

 

package pack;

//自定义运行时异常
class FuShuException extends RuntimeException{
	FuShuException(String msg){
		super(msg);
	}
}

class Person{
	public void checkName(String name){
		
//		if(name.equals("lisi")){ NullPointerException
/*
 * 		if(name == null){
 * 			throw new FuShuException();
 * 		}
 * 
 */
		if("lisi".equals(name)){	//if(name!=null && name.equals("lisi")){
			System.out.println("yes");
		}else{
			System.out.println("no");
		}
	}
}

class Work{
	int div(int a, int b) throws Exception{	//这里抛
		if(b==0)
			throw new Exception();	//普通异常还必须在方法上抛出
		return a/b;
	}
}

public class Demo {
     
    public static void main(String[] args) {
    	Person p = new Person();
    	p.checkName(null);
    }
     
}

  

posted @ 2014-11-29 23:21  wikiki  阅读(264)  评论(0编辑  收藏  举报