疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java中的throws与throw关键字


 

Java中的异常处理还是比较有意思的!就是该你管就你管,不是你该管的,最好不要越级管理!不然我这级管理存在就没有意义!
Java的异常处理是通过5个关键字来实现的:try,catch,throw,throws,finally。这里我主要说一下throw,throws。
throws语句
throws总是出现在方法声明时,用来标明该成员方法可能抛出异常。如果是多个异常,使用逗号隔开。对大 多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。如果异常的类型是Error或 RuntimeException, 或它们的子类,这个规则不起作用, 因为这在程序的正常部分中是不期待出现的。 如果你想明确地抛出一个

RuntimeException,你必须用throws语句来声明它的类型。
throw语句
throw总是出现在方法体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要抛出的异常。
如果一个方法显示的标识抛出异常,则必须使用try—catch语句。
以下是一个自定义异常类的例子:
class MyException extends Exception { //创建自定义异常类
                     String message; //定义String类型变量
                     public MyException(String ErrorMessagr) {  //父类方法
                             message = ErrorMessagr;
                     }

                           public String getMessage(){   //覆盖getMessage()方法
                             return message;
                     }
             }


             public class Captor { //创建类
                     static int div(int x,int y) throws MyException{//定义方法抛出异常
                             if(y < 0){  //判断参数是否小于0
                                     throw new MyException("除数不能是负数");//异常信息
                             }
                             return x/y;//返回值
                     }
                     public static void main(String args[]){ //主方法
                             try{ //try语句包含可能发生异常的语句
                                     div(3,-1);//调用方法
                             }catch (MyException e) { //处理自定义异常
                                     System.out.println(e.getMessage()); //输出异常信息
                             }
                             catch (Exception e) { //处理其他异常
                                     System.out.println("程序发生了其他的异常");
                                     //输出提示信息
                             }
                     }
             }