首页 > 技术文章 > 异常throws关键字 异常throw关键字

l666 2018-09-16 21:07 原文

 

throws关键字

class Math{
    public int div(int i,int j)throws Exception{   //throws Exception声明的方法不对此类异常进行处理,而由该方法的调用者负责处理
        int temp=i/j;
        return temp;
    }
}
public class seven4{
    public static void main(String[] args){
        Math m=new Math();
        try{
            System.out.println("除法操作:"+m.div(10,2)); 
        }
        catch(Exception e){
            e.printStackTrace();    //打印异常
        }
    }
}

throw关键字

java中还可以直接使用throw关键字人为抛出一个异常,人工抛出异常的格式:

  throw 异常类对象;    ---被抛出的必须是Throwable或其子类对象

     IOException e=new IOException();

     throw e;      

   程序执行throw语句后立即终止,然后在包含它的所有try块中从里向外寻找含有与其类型匹配的catch子句。

public class ThrowDemo1{
    public static void main(String args[]){
        try{
            throw new Exception("自己抛着玩的。") ;    //抛出时直接抛出异常实例化对象即可

        }catch(Exception e){
            System.out.println(e) ;
        }
    }
}

自定义异常类

虽然Java的内置异常处理能够处理大多数常见错误,但用户仍需建立自己的异常类型来处理特殊情况。这时可以通过创建Exception的子类来定义自己的异常类。

格式:class 类名 extends Exception{

     … …

     }

class MyException extends Exception{
    MyException(String str){  //在定义异常类时一般需要定义构造方法接收异常信息,该信息可由父类的构造方法传入。
        super(msg);
    }
}

 

系统定义的异常,在程序中遇到时是由系统自动抛出的,但是 在抛出自定义异常时,需要用户使用throw语句自己抛出,其格式 如下:

    throw new 自定义的异常类类名([参数列表]);

class MyException extends Exception{    
    public MyException(String msg){
        super(msg) ;    
    }
}
public class DefaultException{    
    public static void main(String args[]){
        try{
            throw new MyException("自定义异常。") ;     
        }catch(Exception e){
            System.out.println(e) ;
        }
    }
}

 

推荐阅读