JAVA异常的相关知识

什么是异常

本质上是程序上的错误

  1. 编译期间的错误
  2. 运行期间的错误

如何处理异常

  1. try-catch-finally
  2. throw
  3. throws
  4. 自定义异常
  5. 异常链

Throwable类

通过Throwable类以及他的一些子类对程序中的错误进行的描述

主要有2个重要的子类

  • Error:
  • Exception

其中Exception又很多的子类,常见的如下:

  1. 算术异常:ArithmeticException
  2. 输入格式异常:InputMismatchException

异常的基础知识点:
try-catch-finally

try:抛出异常,通常放执行代码

catch:捕获异常,异常api官方文档

finally:这个代码块的内容一定会执行且不受try-catch的影响

try块可以接0个或多个catch块,如果try后面没有接catch块,那么必须接一个finally块

多个catch块连用的时候需要注意以下几点:

  1. 捕获Exception异常的catch块必须放到最后,因为Execption可以捕捉所有类型的异常
  2. 多个catch块捕捉的异常类型不能相同

finally块注意事项:

  1. 最好不要在finally块里面放return语句,因为finally块的执行优先级是大于try-catch里面的return语句的,一旦finally块有return语句,会直接在finally块结束程序,而不会跳到try-catch

throw

  • 用来抛出一个异常,如throw new IOException()
  • 抛出的只能是可抛出类Throwable或其他子类的实例对象

throw抛出异常对象的解决方案

  • 通过try-catch包含throw语句,自己抛出自己处理
  • 通过throws在方法中声明抛出类型,谁调用谁处理,调用者可以自己处理也可以向上抛,此时可以抛throw对象相同的类型或其父类

package com.sinmu.ExceptionTest;

import java.util.Scanner;

public class TryDemoTwo {
    public static void main(String[] args)  {
        test();
        try {
            test1();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //需求:   年龄小于18或大于80的需要在亲人配套下入住
    public static void test(){
        System.out.println("输入年龄:");
        Scanner scanner = new Scanner(System.in);
        int age = scanner.nextInt();
        if (age < 18 || age > 80){
            try {
                throw new Exception("年龄小于18或大于80的需要在亲人配套下入住");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }else {
            System.out.println("入住成功");
        }
    }
    public static void test1() throws Exception {
        System.out.println("输入年龄:");
        Scanner scanner = new Scanner(System.in);
        int age = scanner.nextInt();
        if (age < 18 || age > 80){
                throw new Exception("年龄小于18或大于80的需要在亲人配套下入住");
        }else {
            System.out.println("入住成功");
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java异常处理是Java程序设计的重要组成部分,也是程序设计过程中不可缺少的一部分。异常是在运行期间发生的错误,通常情况下不能交给编译器进行处理,需要程序员在代码中进行异常处理。 Java异常分为两个类型:checked exceptions(被检查异常)和unchecked exceptions(运行时异常)。被检查异常是指程序在编译时由编译器进行检查,必须在代码中进行处理,否则编译不通过。运行时异常是指在程序运行时才会发生的异常,可以被catch块捕捉并处理。 Java异常处理使用try、catch、finally、throw和throws关键字。try语句块定义了要捕捉的代码块,当该块中的某个语句抛出异常时,Java运行时系统会跳到catch语句块进行处理。finally语句块位于catch语句块之后,不管是否捕捉到了异常,该代码块中的代码都会被执行。throw关键字用于在代码中抛出一个异常对象,而throws关键字用于声明方法可能抛出的异常类型。 在Java程序设计中,正确的异常处理可以有效地提高程序的健壮性和稳定性。通过合理使用try-catch语句块可以使程序能够优雅地处理异常,并向用户提供友好的错误提示。在编写代码时,我们应该时刻牢记异常处理是程序设计中的重要部分,始终将其作为程序设计的一个必须要考虑的因素。只有通过良好的异常处理机制,我们才能编写出高质量高可靠的程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python小叮当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值