java 从零开始,学习笔记之基础入门<异常>(十五)(二)

2014-11-24 08:34:27 · 作者: · 浏览: 1
派生的那些异常,如NullPointerException等
v 如果一个异常没有在当前的try-catch模块中得到处理,则它会抛出到它的调用方法。
v 如果一个异常回到了main()方法,仍没有得到处理,则程序会异常终止。
public class ExceptionDemo03 {
public void show() throws FileNotFoundException
{
FileInputStreamfis=newFileInputStream("C:\\AA.TXT");
}
publicstatic void main(String[] args)throws FileNotFoundException {
new ExceptionDemo03().show();
}
}
捕获和抛出异常结合使用
public class ExceptionDemo03 {
public void show() throws FileNotFoundException
{
FileInputStream fis=new FileInputStream("C:\\AA.TXT");
}
publicstatic void main(String[] args) {
try {
new ExceptionDemo03().show();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
方法覆盖中的异常:
package com.ibm.exceptions;
import java.io.IOException;
public class FatherException {
public void show() throws IOException{
System.out.println("f");
}
}
package com.ibm.exceptions;
import java.io.FileNotFoundException;
import java.io.IOException;
public class SonExceptionextends FatherException {
//在子类中需要将父类中的方法覆盖
//覆盖时,如果父类中的方法抛出异常了,但子类中的同名的方法没有抛出异常
//那么此时子类中的方法没有将父类中的方法覆盖
//那么如果子类中想要覆盖父类中抛出异常的方法,那么子类中同名的方法也需要抛异常
//在子类方法中throws抛出的异常类要么和父类中的相同要么是父类方法抛出的异常类的子类
public void show()throws IOException,FileNotFoundException{
System.out.println("s");
}
public static void main(String[] args) {
FatherException fe=new SonException();
try {
fe.show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
自定义异常: 自己定义一个异常类,每一个自定义的异常类都需要继承某一个异常类,一般情况下继承的是Exception类,但是如果我们创建自定义的异常类,那么我们就需要在自定义的异常类中写和Exception类相同的构造器,并且需要调用父类构造器
package com.ibm.exceptions;
public classMyException extends Exception {
public MyException(){
//调用父类的无参构造器
super();
}
public MyException(String message){
super(message);
}
public MyException(String message,Throwable cause){
super(message,cause);
}
public MyException(Throwable cause){
super(cause);
}
}
package com.ibm.exceptions;
public class MyExceptionTest {
public staticvoid main(String[] args) {
try {
throw new MyException("throw MyException!");
} catch (MyException e) {
e.printStackTrace();
}
}
}