异常(中)创建自定义异常,throw,throws关键字抛出异常

您所在的位置:网站首页 自定义类型使用关键字 异常(中)创建自定义异常,throw,throws关键字抛出异常

异常(中)创建自定义异常,throw,throws关键字抛出异常

2024-06-12 04:26| 来源: 网络整理| 查看: 265

文章目录

前言一、创建自定义异常二、在方法中抛出异常 1.使用throw关键字抛出异常2.使用throws关键字抛出异常总结 前言

        该文介绍了Java的异常的创建自定义异常,让我们可以自己创建出一个异常,应对Java API中没有的基础的异常报错。throw关键字抛出异常,throws关键字抛出异常,是不同于try-catch语句的另一种抛出异常的方式。

一、创建自定义异常

        创建自定义异常:自己创建一个应对可以反馈不符合项目需求或现实的异常,应对Java API中基础异常报错没有的情况。

         语法:

class 自定义异常类 extends 已有的异常类{ public 自定义异常类(){ //创建了一个构造方法,通过 super 关键字调用父类构造方法,反馈不符合的新异常 super(); } }

         实例:

                一家无人餐厅中服务一个人时,若顾客不是一个人,而是动物,此异常需要抛错,而Java API中基础异常报错没有此异常,需要我们自定义一个异常。

        创建一个NoHumansException异常类,应对该无人餐厅的异常:

public class NoHumansException extends Exception{ public NoHumansException(String message) { //创建了一个构造方法,通过 super 关键字调用父类构造方法,反馈不符合的新异常 super(message); } }

         在项目中调用此异常:

public class Demo { public static void main(String[] args) { try { String customer = "monkey"; if(!customer.equals("human")) { //通过 throw 关键字实例化 创建的 NoHumansException 异常类 throw new NoHumansException("有非人客户:"+customer); } System.out.println("上菜"); } catch (NoHumansException e) { //输出 try 代码块中捕获的异常,相关的异常内容,报错位置 e.printStackTrace(); } } }

         输出结果:

         总结:

                 使用自定义异常步骤:

                (1)创建自定义异常。

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

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

                (4)在出现异常方法的调用者中捕获并处理异常。

二、在方法中抛出异常

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

1.使用throw关键字抛出异常

        定义:throw 关键字通常用于方法体中,并且抛出一个异常对象。

        语法:

throw new 异常类型(报错内容);

        特点:

                (1)程序运行至 throw 语句时,立即停止执行后面的语句(所在代码块中的语句)。

                (2)通过 throw 抛出异常后,如果想在上一级代码中捕获并处理异常,则需要在抛出的异常的方法中使用 throws 关键字。

                (3)如果要捕捉 throw 抛出的异常,反馈在控制台中,则必须使用 try-catch 语句块。

        实例:

        在统计人数时,人数是大于零的一个值,当人数这个值为负数时,应当报错。虽然运行过程中不会自动报错,但我们可以通过throw关键字抛出实现报错。                

public class ThrowDemo { public static void main(String[] args) { //定义 人数 为 count 对象 int count = -100; try { if(count < 0) { //人数小于零时,抛出该异常,终止try代码块中的程序 throw new ArithmeticException("人员数量是负数"+count); } System.out.println("当前统计的人数为:"+count); }catch(Exception e) { //调用printStackTrace()方法,在控制台中反馈抛出的异常性质,内容,位置 e.printStackTrace(); } } }

        输出结果:

 

2.使用throws关键字抛出异常

        定义:throws 关键字通常被应用在声明方法时,用来指定方法可能抛出的异常(大部分起到警示这个方法中异常的作用)。

        语法:

public void method() throws 异常类型1,异常类型2,…,异常类型n{ }

         特点:

                (1)使用 throws 关键字将异常抛给上一级后,如果不想处理该异常,可以继续向上抛出,但最终要处理该异常的代码。

                (2)多个异常可使用逗号分隔 , 

                (3)如果是Error、RuntimeException或它们的子类,可以不使用 throws 关键字来声明要抛出的异常,编译仍能顺利通过,但在运行时会被系统抛出。

        实例: 

public class ThrowsDemo { //在定义 show()方法时,使用 throws 关键字,抛出异常 public static void show() throws ArithmeticException,Exception{ for(int i = 0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3