Java异常总结

2023-11-07

1、异常的定义

定义:异常又称例外,是程序执行过程中发生的事件,它会终止程序的正常执行。

2、异常的分类

Error:是JVM内部产生的,不需要程序员去解决,是不受检查异常,非代码性错误 Exception:是用户程序可能出现的异常,它是用来创建自定义异常类的类
RuntimeException:运行时异常,程序运行期间产生的异常,编译时不会出现问题,解决方案:专业的异常处理方案|提高代码的健壮性
CheckedException:检测时|编译时异常,由于程序编写不符合基本语法规范导致的编译时产生的错误。

顶级父类


Error

Exception

常见运行时异常:

  • 数组下标越界
  • 空指针异常
  • 数学异常
  • 类型转换异常

3、异常的处理

异常抛出
    使用关键字`throws`,将异常从方法内部抛到方法外部由调用它的上层方法去处理,当然上层方法也可以继续抛出,但最后也只能到`main方法`就必须要处理。

异常捕获
    在产生异常的地方就地捕获直接处理,使用`try-catch`结构,其中catch中包含的是对异常的处理方法,但是由于在异常种类中存在继承关系,所以就有了异常的的范围,Java语言规范要求低范围的catch放在高范围的catch的前面。

4、自定义异常

自定义异常是根据编程需求编写需要的自定义异常类,必须得继承Exception类。

实例代码

要求:从键盘输入一个整形数n,如果输入正确的话,输出10-n后的值,如果输入错误的话输出“not int”,
如果输入的不是整数,则抛出异常类:InputMismatchException。

自定义异常类(InputMismatchException.java)

public class InputMismatchException extends Exception{
    public InputMismatchException(){

    }

    public InputMismatchException(String message){
        super(message);	//调用父类构造方法
    }
}

测试代码(PrintInteger.java)

import java.util.Scanner;

public class PrintInteger {


    /*
    * 判断该数是否为10-n之间
    * */
    public static void isNumber(double n) throws InputMismatchException{
        if(n%1==0){
            System.out.println("10-"+n+"="+(10-n));
        }else{
            throw new InputMismatchException("not int");	//制造异常
        }
    }

    //主函数
    public static void main(String[] args) {
        System.out.print("请输入一个数:");
        Scanner scan=new Scanner(System.in);
        double n= scan.nextDouble();

        try {
            isNumber(n);
        } catch (InputMismatchException e) {
            e.printStackTrace();
        }

    }
}

在这里插入图片描述

致谢

希望笔者的总结能给大家带来一些帮助,由于笔者水平有限还望大神对本人的错误加以指出。对于大家的问题也可以在文末留言,大家可以一起交流学习。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java异常总结 的相关文章

随机推荐

  • java: 抽象工厂模式 Abstract Factory(Kit/ToolKit)

    版权所有 2022 涂聚文有限公司 许可信息查看 描述 抽象工厂 Abstract Factory Kit ToolKit 历史版本 JDK 14 02 2022 09 12 创建者 geovindu 2022 09 12 添加 Lambd
  • springCloud 微服务架构设计图解

    搭建初始化项目地址 spring cloud project 简单的springClould快速启动 包括 nacos gateway Redis mybatis plus rocketMQ OpenFeign只是简单的搭建了一些基础模块
  • 路由器和交换机的工作原理总结

    路由器的工作原理 当数据包进入路由器时 路由器先查看数据包中的目标MAC地址 1 广播 解封装到3层 2 组播 每一个组播地址均存在自己的MAC地址 基于目标MAC就可以判断本地是否 需要解封装 若本地加入了该组将解包 否则直接丢弃 3 单
  • 《TCP/IP网络编程》阅读笔记--Socket类型及协议设置

    目录 1 协议的定义 2 Socket的创建 2 1 协议族 Protocol Family 2 2 Socket类型 Type 3 Linux下实现TCP Socket 3 1 服务器端 3 2 客户端 3 3 编译运行 4 Window
  • Docker 网络实现

    Docker 网络实现 Docker 的网络实现其实就是利用了 Linux 上的网络名字空间和虚拟网络设备 特别是 veth pair 建议先熟悉了解这两部分的基本概念再阅读本章 基本原理 首先 要实现网络通信 机器需要至少一个网络接口 物
  • 2023华为OD机试真题【连接器/贪心算法】

    题目描述 有一组区间 a0 b0 a1 b1 a b表示起点 终点 区间有可能重叠 相邻 重叠或相邻则可以合并为更大的区间 给定一组连接器 x1 x2 x3 x表示连接器的最大可连接长度 即x gt gap 可用于将分离的区间连接起来 但两
  • linux搭建环境命令,在Linux上搭建测试环境常用命令(转自-测试小柚子)

    一 搭建测试环境 二 查看应用日志 1 vi vi vim 原本是指修改文件 同时可以使用vi 日志文件名 打开日志文件 2 less less命令是查看日志最常用的命令 用法 less 日志文件名 分页显示文件的内容 经常使用这个命令是因
  • [开发中遇到的算法] 均分数组

    业务背景 最近我需要写并发rpc的负载均衡 某种意义上的吧 遇到很有意思的问题 需求如下 下游固定死最多一次请求100个 比如要请求101个时要拆两个请求并发rpc 并等待两个请求都返回后拼装成一个结果返回 拆成51个 50个发出请求比拆成
  • lgg8各个版本_如何评价LG G8?

    回复下吧 产品中规中矩的升级 奈何同期对手太强 宣发脑子被驴踢 前置TOF早有透露 自家lg innotek的产品 效果不错 能更好3d人脸自拍 人脸识别 以及AR 都9012了搞隔空操作还作为宣传主力真是脑子进了水 忘了三星S4的眼球操作
  • [人工智能-深度学习-24]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 人工智能 深度学习 23 卷积神经网络CNN CS231n解读 卷积神经网络基本层级 文火冰糖 王文兵 的博客 CSDN博客 目录 第1章
  • 使用elment+moment写年时间段选择

    要求 选择年的时间段 不能选择当前年之后的年份 先看实现效果如 1 html结构代码
  • 矩阵的迹(Trace)

    译自维基百科 在线性代数中 方阵A n n 的迹定义为对角线元素的和 即 矩阵的迹表示的是特征值的和 它不随基的变化而变化 通常 这种特性可以用来定义线性算子的轨迹 注意 迹是对方阵而言的 举例 A是一个方阵 如下 则A的迹表示为 迹的特性
  • KEIL编译出现错误“source file is not valid utf-8”

    KEIL编译出现错误 source file is not valid utf 8 在外面复制了一段代码 c文件一直报错source file is not valid utf 8的错误 经查找原因就是 文件中出现中文符号导致的 特别是中文
  • 用Excel做相关性分析

    一 概念理解 相关关系 变量之间存在着的非严格的不确定的关系 对它们进行深层次的分析 观察它们的密切程度 相关性分析 对变量之间相关关系的分析 即相关性分析 其中比较常用的是线性相关分析 用来衡量它的指标是线性相关系数 又叫皮尔逊相关系数
  • new的三种用法

    new的三种用法 第一种 创建一个新对象 Test p new Test 10 这里的new的用法是创建一个新的Test型的对象 该用法一共有三个步骤 1 申请一个空间 2 在申请的空间当中构造一个对象 并将该对象放置到空间中 3 将空间的
  • Ubuntu下NFS服务器配置及应用

    NFS文件系统仅占用系统挂载点 NFS服务器设定好分享的目录 home shares 其他客服端就可以将这个目录挂载到自己系统上的挂载点上 home shares就像自己的一个分区 但不占用自己的磁盘空间 虽然NFS有自己的协议及端口号 但
  • 必测的支付漏洞(一)——使用fiddler篡改支付金额

    互联网产品中常会遇到支付功能 测试人员测试这部分功能时一定要重视 因为如果这部分出现了较严重的bug 将会给公司带来不小的经济损失 如果你测出了问题领导也一定会高兴的 因此测试优先级很高 但具有一定难度 刚接触测试的小白们可能不知道支付功能
  • 五分钟成为记忆王

    一 记忆的面纱 1 记忆的含义 1 就在我嘴边上 有多少次你这样说过 就在我嘴边上 又有过多少次在你需要什么时候 任凭你如何拼命地想 就是想不起来 当然 这问题不是你一个人才有 几乎所有的人都受到过记忆力差的困扰 这也是人类的一个最常见的不
  • stm32 IO口的八种输入输出模式

    记录一下stm32 IO口的八种输入输出模式的学习 首先 可以看见stm32的输入输出模式有以上8种 先从简单的开始说吧 上拉输入和下拉输入 看图 由上图可见 当IO口设置为上拉输入的时候 IO口内部的上拉电阻就被接上了 从字面意思可以理解
  • Java异常总结

    1 异常的定义 定义 异常又称例外 是程序执行过程中发生的事件 它会终止程序的正常执行 2 异常的分类 Error 是JVM内部产生的 不需要程序员去解决 是不受检查异常 非代码性错误 Exception 是用户程序可能出现的异常 它是用来