iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >throw和throws关键字怎么在java中使用
  • 804
分享到

throw和throws关键字怎么在java中使用

2023-06-06 13:06:53 804人浏览 泡泡鱼
摘要

throw和throws关键字怎么在java中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在程序中自定义类,大体上分为以下几个步骤:创建自定义异常类在方法

throw和throws关键字怎么在java中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在程序中自定义类,大体上分为以下几个步骤:

创建自定义异常类

在方法中通过throw关键字抛出异常对象。

如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块捕捉并处理异常,否则在方法的声明处通过throws指明要抛出给方法调用者的异常,继续进行下一步操作。

再出现异常的方法的调用者中捕获处理异常。

下面是我创建自定义异常。在项目中创建类MyException,该类继承Exception。

public class MyException extends Exception{ //创建自定义异常public MyException(String ErrorExceptin){ //构造方法 super(ErrorExceptin); //父类构造方法}}

在项目中创建类TestException,在该类中创建一个带int型参数的方法Sum(),该方法参数是否小于0或大于20,通过throw关键字抛出一个MyException异常对象,并在main()中捕获异常。

下面是代码实例

public class TestException {//定义方法,抛出异常private static int Sum(int num1,int num2)throws MyException{ if(num1<0||num2<0){ //判断方法中参数是否满足条件 throw new MyException("输入参数为负数"); //错误信息 } if(num1>20||num2>20){ //判断方法中参数是否满足条件 throw new MyException("输入参数大于20");//错误信息 } return (num1+num2); //将两个数的和输出}public static void main(String []args){ try {  //try代码块处理可能出现的异常 int result=Sum(22,23); //调用Sum()方法 System.out.println(result); //将Sum()方法的返回值输出 } catch (MyException e) {  // TODO: handle exception System.out.println(e); //输出异常信息 }}}

输出结果:

throw和throws关键字怎么在java中使用

上面说的是如何定义一个自定义异常,那么接下来说说,如何在方法中抛出异常呢?

若是某个方法可能发生异常,但不想在当前方法中处理这个异常,则可以使用throws、throw关键字在方法中抛出异常。

throws通常用在声明方法时,用来制指定可能抛出的异常。多个异常可以使用逗号分隔。

throw关键字通常用于方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即终止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法的声明中指明要抛出的异常;如果要捕获throw抛出的异常,则必须使用try-catch语句块;

下面是一个空指针的例子的例子

public class NullpointExceptionTest {static void testNull()throws NullPointerException{ String s = null; if(s==null){ throw new NullPointerException(); }}public static void main(String []args){ try { testNull(); } catch (NullPointerException e) { // TODO: handle exception System.out.println("testNull()中抛出的异常是"+e); }}}

输出结果:

throw和throws关键字怎么在java中使用

注意:如果是Error、RuntimeException或它们的子类,可以不使用throws关键字来声明要抛出的异常,编译仍能顺利通过,但在系统运行时会被系统抛出。如果有多个catch语句块处理异常,但是catch(Exception e)代码块放在其他代码的前面的画,后面的代码就得不到执行,后面的代码块将得不到执行。

RuntimeException异常是程序运行过程中产生的异常,java类库的每个包中都定义了异常类,所有这些类都是Throwable的子类。Throwable派生了两个子类,分别是Exception和Error类。Error类及其子类用来描述java系统中的内部错误以及资源耗尽的错误,这类错误比较严重。Exception类被称为非致命类,可以通过捕捉处理是程序继续执行。Exception类有根据错误发生的原因分为RuntimeException异常和RuntimeException异常之外的异常。这些常见的异常都可以通过try-catch语句来捕捉。

java异常机制用户去考虑程序的强制性和安全性。异常处理不应用来控制程序的正常流程,其主要作用是捕获程序在运行时发生的异常并进行相应的处理。

编写代码处理某个方法时可能出现的异常时,可遵循以下几条原则:

在当前方法声明中使用try-catch语句捕获异常。

在一个方法被覆盖时,覆盖它的方法必须抛出相应的异常或者异常的子类。

如果父类抛出多个异常,则覆盖的方法必须抛出那些异常的一个子集,不能抛出新的异常。

补充:java 异常处理之自定义一个异常类及其用法

1.定义异常类

自定义的异常类继承现有的异常类

提供一个序列号,作为对象的唯一标识

提供几个重载的构造器

自己或间接继承RuntimeException的自定异常类可以不用显示处理,反之,则需要显示处理。

2.dome

这里的自定义异常是在Eclipse中按Ctrl+shift+T,查看RuntimeException源码参照写的。

//如果是继承Exception,则在手动抛出的是时候显示处理,或者丢给JVMclass MyException extends RuntimeException { //序列号 static final long serialVersionUID = -70348971102145766939L; public MyException() {  } public MyException(String msg) { super(msg); }}public class TestException4 { public static void main(String[] args) { Student s = new Student(); s.reGISter(-1); //自定义异常类,try-catch-finally中的使用 try { s.register(-11); } catch (MyException e) { System.out.println(e.getMessage()); } System.out.println(s); }}class Student{ int id; public void register(int id) { if(id>0) { this.id = id; }else { //手动抛出一个异常的使用 throw new MyException("传入的id有误"); } } @Override public String toString() { return "Student [id=" + id + "]"; } }

3.异常类继承关系图

throw和throws关键字怎么在java中使用

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: throw和throws关键字怎么在java中使用

本文链接: https://www.lsjlt.com/news/247118.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • throw和throws关键字怎么在java中使用
    throw和throws关键字怎么在java中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在程序中自定义类,大体上分为以下几个步骤:创建自定义异常类在方法...
    99+
    2023-06-06
  • Java关键字throw、throws、Throwable怎么用
    本文小编为大家详细介绍“Java关键字throw、throws、Throwable怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java关键字throw、throws、Throwable怎么用”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-06-30
  • java中throws关键字如何使用
    在Java中,throws关键字用于在方法签名中声明可能抛出的异常。它用于告诉调用该方法的代码,该方法可能会抛出特定类型的异常,调用...
    99+
    2023-09-12
    java
  • throw和throws在java中有什么区别
    这篇文章给大家介绍throw和throws在java中有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有...
    99+
    2023-06-14
  • 在java中throw和throws有什么区别
    throw是语句抛出一个异常,throws是方法可能抛出异常的声明throws出现在方法函数头,而throw出现在函数体throw是指抛出一个异常的动作,而throws代表一种状态,指的是可能有异常抛出。throw只能用于抛出一种异常,而t...
    99+
    2024-04-02
  • 详细介绍Java关键字throw throws Throwable的用法与区别
    目录1. Throwable1.1 扩展-Error1.2 扩展-Exception2. throws2.1 扩展3. throw3.1 扩展4. 总结throw,意为“...
    99+
    2024-04-02
  • throws怎么在java中使用
    throws怎么在java中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的...
    99+
    2023-06-14
  • java中throws怎么使用
    在Java中,throws关键字用于指明方法可能抛出的异常。它可以用在方法的声明和调用处。 在方法的声明处使用throws关键字...
    99+
    2023-10-25
    java
  • Java中使用throw-throws抛出异常如何解决
    这篇文章将为大家详细讲解有关Java中使用throw-throws抛出异常如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、throws抛出异常   &...
    99+
    2023-06-20
  • 怎么在Java中同时使用catch和throw
    今天就跟大家聊聊有关怎么在Java中同时使用catch和throw,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1 代码示例AuctionTest.javapublic c...
    99+
    2023-06-06
  • static关键字怎么在java项目中使用
    本篇文章给大家分享的是有关static关键字怎么在java项目中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。静态方法通常在一个类中定义一个方法为static,即为静态方法...
    99+
    2023-05-31
    java static ava
  • Java中 transient关键字怎么使用
    本篇文章为大家展示了Java中 transient关键字怎么使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizabl...
    99+
    2023-06-19
  • Java中transient关键字怎么使用
    本篇内容主要讲解“Java中transient关键字怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中transient关键字怎么使用”吧!一、概要介绍   对...
    99+
    2023-07-06
  • Java中super关键字怎么使用
    这篇文章主要讲解了“Java中super关键字怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中super关键字怎么使用”吧!supersuper是一个关键字,全部小写。sup...
    99+
    2023-07-02
  • java中this关键字怎么使用
    这篇文章主要介绍了java中this关键字怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中this关键字怎么使用文章都会有所收获,下面我们一起来看看吧。this 的使用:修饰属性和方法,也可以理...
    99+
    2023-06-26
  • java中abstract关键字怎么使用
    在Java中,abstract关键字主要用于定义抽象类和抽象方法。1. 抽象类的定义:使用abstract关键字修饰类,将其声明为抽...
    99+
    2023-09-23
    java
  • java中的final关键字怎么使用
    在Java中,final关键字可以用于修饰类、方法和变量。1. final修饰类:final修饰的类是不可被继承的,即该类不能有子类...
    99+
    2023-08-24
    java final
  • java中的super关键字怎么使用
    在Java中,super是一个关键字,用于引用父类的成员变量、成员方法和构造方法。1. 引用父类的成员变量:可以使用super关键字...
    99+
    2023-08-08
    java super
  • this关键字如何在Java中使用
    今天就跟大家聊聊有关this关键字如何在Java中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。我们通常在用Java中的this关键字的时候,都知道this是代表正在调用这个类的...
    99+
    2023-05-31
    java 关键字 this
  • super关键字如何在Java中使用
    super关键字如何在Java中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 java方法重写和super关键字  在继承中,其实就是...
    99+
    2023-05-31
    java ava super
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作