java throws异常处理抛出异常的处理方法实例源码



java throws异常处理抛出异常的处理方法实例源码。java处理异常的方法有两种:一种是用try catch 语句,也就是手动捕捉异常;另外一种处理异常的方法就是使用throws语句抛出异常,当然抛出的异常也是要处理的,不过是交给下一个引用者来处理而已,而throws语句也是可以抛出多个异常的。下面是java throws的使用方法实例代码:

package cn.bjsxt.exception.test;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class TestReadFile {
public static void main(String[] args) throws FileNotFoundException, IOException {
String str;
str = new TestReadFile().openFile();
System.out.println(str);
}

String openFile() throws FileNotFoundException,IOException {
FileReader reader = new FileReader(“d:/a.txt”);
char c = (char)reader.read();
System.out.println(c);
return “”+c;
}
}
下面来说一下方法重写中声明异常的原则:
子类声明的异常范围不能超过父类声明的范围。包含如下意思:
1、父类没有声明异常,子类也不能;
2、不可以抛出原有方法抛出异常类的父类或者上层类;
3、抛出的异常类型的数目不可以比原有的方法抛出的还多(但不是指个数)
以下是代码实例:
package cn.bjsxt.exception.test;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.ParseException;
class A {
public void method() throws IOException { }
}

class B extends A { public void method() throws FileNotFoundException { }
}

class C extends A { public void method() { }
}

// class D extends A { public void method() throws Exception { } //超过父类异常的范围,会报错!
// }


class E extends A { public void method() throws IOException, FileNotFoundException { }
}
class F extends A { public void method() throws IOException, ArithmeticException { }
}
// class G extends A { public void method() throws IOException, ParseException { }
// }

我们也可以手动抛出异常来,此时使用的关键字是throw而不是throws。声明自己的异常的实例源码如下:
package cn.bjsxt.exception.test;

/**
*
* @author Administrator
*
*/
public class MyException extends Exception {

public MyException(){

}

public MyException(String message){
super(message);
}

}

class TestMyException{
void test()throws MyException{
///
}

public static void main(String[] args) {
try {
new TestMyException().test();
} catch (MyException e) {
e.printStackTrace();
}
}
}