Java throws 使用

Java throws 使用在开发中 如果去调用别人写的方法时 是否能知道别人写的方法是否会发生异常 这是很难判断的 针对这种情况 Java 总允许在方法的后面使用 throws 关键字对外声明该方法有可能发生异常 这样调用者在调用方法时 就明确地知道该方法有异常 并且必须在程序中对异常进行处理 否则编译无法通过 如下面代码 packagewww kangxg jdbc publicclassE

在开发中,如果去调用别人写的方法时,是否能知道别人写的方法是否会发生异常?这是很难判断的。针对这种情况,Java总允许在方法的后面使用throws关键字对外声明该方法有可能发生异常,这样调用者在调用方法时,就明确地知道该方法有异常,并且必须在程序中对异常进行处理,否则编译无法通过。

如下面代码

package www.kangxg.jdbc; public class Example {     public static void main(String[] args) {         // TODO Auto-generated method stub        int result = divide(4,2);        System.out.println(result);     }          public static int divide(int x,int y) throws Exception     {         int result = x/y;         return result;     } } 

这时候 编译器上会有错误提示  Unhandled exception type Exception

package www.kangxg.jdbc; public class Example {     public static void main(String[] args) {                try {          int    result = divide(4,2);           System.out.println(result);        } catch (Exception e) {                    e.printStackTrace();        }            }          public static int divide(int x,int y) throws Exception     {         int result = x/y;         return result;     } }

debug 运行程序

Java throws 使用

当 调用divide()方法时,如果不知道如何处理声明抛出的异常,也可以使用throws 关键字继续抛异常,这样程序也能编译运行。但是注意的是,程序一旦发生异常,如果没有被处理,程序就会非正常终止。如下:

package www.kangxg.jdbc; public class Example {     public static void main(String[] args) throws Exception {                    int    result = divide(4,0);           System.out.println(result);            }          public static int divide(int x,int y) throws Exception     {         int result = x/y;         return result;     } }

debug运行程序

 

  Java throws 使用

Java 运行时异常与编译时异常

1. 编译时异常

   在Java 中,Exception类中除了RuntimeException 类及其子类外都是编译时异常。编译时异常的特点是Java编译器会对其进行检查,如果出现异常就必须对异常进行处理,否则程序无法编译通过。

  处理方法

   使用try… catch 语句对异常进行捕获

   使用throws 关键字声明抛出异常,调用者对其进行处理

2.运行时异常

  RuntimeException 类及其子类运行异常。运行时异常的特点是Java编译器不会对其进行检查。也就是说,当程序中出现这类异常时,即使没有使用try… catch 语句捕获使用throws关键字声明抛出。程序也能编译通过。运行时异常一般是程序中的逻辑错误引起的,在程序运行时无法修复。例如 数据取值越界。

三 自定义异常

  JDK中定义了大量的异常类,虽然这些异常类可以描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况。例如divide()方法中不允许被除数为负数。为类解决这个问题,在Java中允许用户自定义异常,但自定义的异常类必须继承自Exception或其子类。例子如下

package www.kangxg.jdbc; public class DivideDivideByMinusException  extends Exception {          /      *      */     private static final long serialVersionUID = 1L;     public DivideDivideByMinusException(){         super();     }          public DivideDivideByMinusException(String message)     {         super(message);     } } 

 

package www.kangxg.jdbc; public class Example {     public static void main(String[] args) throws Exception {                  try {              int    result = divide(4,-2);               System.out.println(result);          } catch (DivideDivideByMinusException e) {                           System.out.println(e.getMessage());          }            }          public static int divide(int x,int y) throws DivideDivideByMinusException     {         if(y<0)         {             throw new DivideDivideByMinusException("被除数是负数");         }         int result = x/y;         return result;     } }

Debug 运行

  Java throws 使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228203.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午7:34
下一篇 2026年3月16日 下午7:35


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号