江湖开发者 | Java粉
网站地图
首页> Java> java异常2
2016
01-11

java异常2


java异常2


1. 慎用异常 使用try catch进行异常捕获是耗性能的.尤其是在循环中,应该注意.


2.throws 和 throw 的区别:


    throws:从异常处理的角度来说,它是异常处理的一种方式。格式:通过在方法的声明后 throws  异常类

    throw:从异常对象生成的角度,如果需要手动抛出一个异常对象的话,就要使用throw。使用在方法内部。


3.重写方法声明抛出异常的原则

//重写方法不能抛出比被重写方法范围更大的异常类型
public class A {
    public void methodA() throws IOException {
    ……
    }
}
public class B1 extends A {
    public void methodA() throws FileNotFoundException {
    ……
    }
}
public class B2 extends A {
    public void methodA() throws Exception { //报错
    ……
    }
}


4.在 try catch 块中使用  system.exit(0) 或 return 时 finally块 还会不会执行


    使用 return 时 finally块还会执行

    使用System.exit(0) 因为退出了jvm虚拟机,所以 finally块不会执行


5.自定义异常

  一般地,用户自定义异常类都是RuntimeException的子类。

 自定义异常类通常需要编写几个重载的构造器。

 自定义的异常通过throw抛出。

 自定义异常最重要的是异常类的名字,当异常出现时,可以根据名字判断异常类型。


6.对于异常的处理

        对于编译时异常,编译器会提醒处理,否则编译错误。

        对于异常时异常如果没有使用try catch 进行捕获,则立即停止程序


1.模拟空指针异常,因为没有进行异常捕捉,所以程序运到异常则停止,不再继续执行

public class TestException {
	public static void main(String[] args) {
		TestException  e= null;
		e.method();
		
		System.out.println("异常后输出");
	}
	void method(){
		System.out.println("method");
	}
}
/**
输出:
Exception in thread "main" java.lang.NullPointerException
	at com.javajh.TestException.main(TestException.java:8)
*/

2. 因为使用try catch 进行了异常捕获,所以程序继续执行.

public class TestException {
	public static void main(String[] args) {
		try{
			TestException  e= null;
			e.method();
		}catch(NullPointerException e){
			System.out.println("catch");
		}
		
		System.out.println("异常后输出");
	}
	void method(){
		System.out.println("method");
	}
}
/**
输出:
catch
异常后输出
*/


Java江湖      
全部评论:

表情验证码,看不清楚,换一张

随机文章

云标签

公众号

微信

分享:分享我们的知识;专注:专注个人技术的提升;