猿教程 Logo

Java throws关键词

Java throws关键字用于声明异常。 它给程序员一个信息,可能会发生异常,所以程序员最好提供异常处理代码,以便保持正常的流程。

异常处理主要用于处理检查的异常。 如果发生任何未检查的异常,例如NullPointerException,它是程序员错误,他没有在使用代码之前执行检查。

java throws的语法

return_type method_name() throws exception_class_name{
//method code
}

应该声明哪个异常

回答)仅检查异常(checked exception),因为:

  • 未检查异常:在您的控制下,以便更正您的代码。

  • 错误:超出您的控制范围 如果发生VirtualMachineError或StackOverflowError,则无法执行任何操作。

Java throws关键字的优点

现在检查异常可以传播(在调用堆栈中转发)。

它向抛出异常的方法的调用者提供信息。


Java throws示例

让我们看看java throws子句的例子,它描述了检查异常可以通过throws关键字传播。

相关实例:

import java.io.IOException;
class Testthrows1{
  void m()throws IOException{
    throw new IOException("device error");//checked exception
  }
  void n()throws IOException{
    m();
  }
  void p(){
   try{
    n();
   }catch(Exception e){System.out.println("exception handled");}
  }
  public static void main(String args[]){
   Testthrows1 obj=new Testthrows1();
   obj.p();
   System.out.println("normal flow...");
  }
}

输出:

exception handled
normal flow...

规则:如果您正在调用声明异常的方法,则必须捕获或声明异常。

有两种情况:Case1:您捕获了异常,即使用try / catch处理异常。 case2:你声明异常,即使用方法指定throws。

Case1:处理异常

  • 如果处理异常,无论是否在程序期间发生异常,代码都将被顺利执行,。

相关实例:

import java.io.*;
class M{
 void method()throws IOException{
  throw new IOException("device error");
 }
}
public class Testthrows2{
   public static void main(String args[]){
    try{
     M m=new M();
     m.method();
    }catch(Exception e){System.out.println("exception handled");}   

    System.out.println("normal flow...");
  }
}

运行结果:

Output:exception handled
       normal flow...

Case2:声明异常

  • A)如果你声明异常,如果没有发生异常,代码将被执行。

  • B)如果您在异常发生时声明异常,则会在运行时抛出异常,因为throws不处理异常。

相关实例:

import java.io.*;
class M{
 void method()throws IOException{
  System.out.println("device operation performed");
 }
}
class Testthrows3{
   public static void main(String args[])throws IOException{//declare exception
     M m=new M();
     m.method();

    System.out.println("normal flow...");
  }
}

运行结果:

Output:device operation performed
       normal flow...

相关实例:

import java.io.*;
class M{
 void method()throws IOException{
  throw new IOException("device error");
 }
}
class Testthrows4{
   public static void main(String args[])throws IOException{//declare exception
     M m=new M();
     m.method();

    System.out.println("normal flow...");
  }
}

运行结果:

Output:Runtime Exception

throw和throws之间的差异

请点击:Java throw和throws的区别

Que)我们可以重新抛出异常吗?

是的,通过在catch块中抛出相同的异常。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Java/throws-keyword-java.html