throw是类还是方法或者其他的???????

解决方案 »

  1.   

    是一个关键字。表示抛出一个异常。 和new 有点类似
      

  2.   

    一个关键字,类似于return的作用,throw返回的是一个Throwable对象或Throwable派生类对象
      

  3.   

    throw意思是出现异常自己不处理,而扔给其他对象处理
      

  4.   

    throw这家伙根本不是个东东啊。
      

  5.   

    throw的作用表示显示的抛出异常
      

  6.   

    java 的异常处理所用的关键字
      

  7.   

    throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常;如果要捕捉throw抛出的异常,则必须使用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 quotient(int x,int y) throws MyException{//定义方法抛出异常
    if(y < 0){  //判断参数是否小于0
             throw new MyException("除数不能是负数");//异常信息
     }
     return x/y;//返回值
     }
    public static void main(String args[]){ //主方法
     try{ //try语句包含可能发生异常的语句
                    int result = quotient(3,-1);//调用方法quotient()
        }catch (MyException e) { //处理自定义异常
      System.out.println(e.getMessage()); //输出异常信息
      }
        catch (ArithmeticException e) {
                       //处理ArithmeticException异常
      System.out.println("除数不能为0");//输出提示信息
      }
       catch (Exception e) { //处理其他异常
      System.out.println("程序发生了其他的异常");
                      //输出提示信息
      }
     }
    }
      

  8.   

    是一个关键字。表示抛出一个异常,如果程序出现了异常,就抛给别的地方处理或给JVM处理继续向后执行。
    如果没抛出异常就正常执行,和没有throw没有关系。
      

  9.   


    public class ThrowAndThrows {
        /**
         * 计算一个数字的平方根
         * @param nStr    以字符串的形式提供数字
         * @return    返回平方根
         * @throws Exception    当用户输入的字符串为空,
         * 或者字符串无法转换成数字,或者转换成的数字小于0,都会抛出异常
         */
        public static double sqrt(String nStr) throws Exception {
            if (nStr == null) {
                //用trow关键字抛出异常,当异常被抛出时,程序会跳出该方法
                throw new Exception("输入的字符不能为空!");
            }
            double n = 0;
            try {
                n = Double.parseDouble(nStr);
            } catch(NumberFormatException e) {
                //将parseDouble方法可能抛出的异常NumberFormatException捕获,
                //然后将捕获的异常重新封装并输出
                throw new Exception("输入的字符串必须能够转化成数字!", e);
            }
            if (n < 0 ){
                throw new Exception("输入的字符串转化成的数字必须大于0!");
            }
            return Math.sqrt(n);
        }
        
        public static void main(String[] args) throws Exception {
            try{
                ThrowAndThrows.sqrt("-124.56");
            } catch(Exception e) {
                //将sqrt方法声明的可能抛出的Exception异常捕获
                //打印捕获的异常的堆栈信息,从堆栈信息中可以发现异常发生的位置和原因
                System.out.println("Got a Exception:" + e.getMessage());
                e.printStackTrace();
                throw e;    //不做进一步处理,将异常向外抛出
            }
            
            //将sqrt声明了可能会抛出的异常向外抛出,必须在方法声明中使用throws
            ThrowAndThrows.sqrt("-124.56");
        }}
    有个小例子哈
      

  10.   

    问下为什么throw抛出的对象,这个对象为什么能传递到catch(Exception e)这个里面