Java中的异常(2)

来源:互联网 发布:知乎注册名字 编辑:程序博客网 时间:2024/06/11 07:08

1.   throws和throw关键字

(1).throws关键字:在定义一个方法的时候可以使用throws关键字声明,使用 throws声明的方法表示此方法不处理异常,而交给方法的调用处进行处理。

使用格式:

public 返回值类型  方法名称(参数列表。。。。)throws异常类{}

举例:

class Math{

public int div(int i,int j)throws Exception{//定义除法操作,如果有异常,交给调用处处理

int t = i/j;

return t;

}

}

以上程序报错,因为div方法使用了throws关键字声明,所以在调用此方法的时候,方法必须进行异常处理。

举例:

public class Exception3 {

public static void main(String[] args) {

Math m = new Math();

try{

System.out.println("除法操作:" + m.div(10, 2));

}catch (Exception e) {

e.printStackTrace();//打印异常

}

}

}

class Math{

public int div(int i,int j)throws Exception{//定义除法操作,如果有异常,交给调用处处理

int t = i/j;

return t;

}

}

运行结果:除法操作:5


如果现在在主方法的声明上也使用了throws关键字,可不可以呢?答案是可以。在主方法中的所有异常都可以不使用try...catch进行处理

举例:

public class Exception3 {

//在主方法中的所有异常都可以不使用try...catch进行处理

public static void main(String[] args)throws Exception {

Math m = new Math();

System.out.println( "除法操作:" + m.div(10, 2));

}

}

class Math{

public int div(int i,int j){

int t = i/j;

return t;

}

}

运行结果:除法操作:5

把以上主方法中输出改为System.out.println( "除法操作:" + m.div(10,0));


则抛出异常,在本程序中主方法不处理任何异常了,而是交给最大的头,java中最大的头是JVM,所以如果在主方法中使用throws关键字,则表示一切的异常交给了JVM进行处理,默认的处理方法也是使用JVM完成的。


(2) throw关键字

throws关键字的作用与throws关键字不同的是在程序中,可以直接使用throw抛出一个异常。抛出的时候直接抛出异常类的实例化对象即可。

举例:

public class Exception4 {

public static void main(String[] args) {

try{

throw new Exception("自己抛着玩");//抛出异常的实例化对象

}catch (Exception e) {

System.out.println(e);

}

}

}

运行结果:java.lang.Exception: 自己抛着玩


2.throw和throws,结合try..catch..finally应用

举例“:

public class Exception3 {

//在主方法中的所有异常都可以不使用try...catch进行处理

public static void main(String[] args) {

Math m = new Math();

try {

System.out.println( "除法操作:" + m.div(10, 0));

} catch (Exception e) {

System.out.println( "异常产生:" + e);

}

}

}

class Math{

public int div(int i,int j)throws Exception{

System.out.println("======计算开始======");

int temp = 0;

try {

temp = i/j;

} catch (Exception e) {

throw e;

}finally{

System.out.println("======计算结束======");

}

return temp;

}

}

运行结果:

======计算开始======
======计算结束======
异常产生:java.lang.ArithmeticException: / by zero




0 0
原创粉丝点击