JAVA—异常

news2024/9/24 5:31:10

   认识异常,学会从报错信息中发现问题,解决问题。并学会构建自定义异常,提醒编程时注意

目录

1.认识异常

2.自定义异常

 1.自定义运行时异常

2.自定义编译时异常

3.异常的处理


1.认识异常

                           异常就是代表程序出现的问题,用来查询BUG关键信息

         将错误信息封装为一个错误对象,然后提交到JVM虚拟机中返回报错信息,显示错误类型,错误问题,错误位置。

异常类Throwaable 子类包括:

  •                 Error(系统级错误,严重问题)(开发时不理会)
  •                 Exception(异常 我们程序会出现的问题)再下设

                                   运行时异常:RuntimeException及其子类(运行时出现的问题)

                                   编译时异常:编译阶段会有错误提醒其他异常(日期解析异常)


2.自定义异常

                                        掌握学习自定义异常和体会作用

 1.自定义运行时异常

   使用异常对象封装问题并使用throw抛出到上一层经过try catch语句显示 

package Exception;

public class Ageillega extends RuntimeException {
    public Ageillega() {
    }

    public Ageillega(String message) {
        super(message);
    }
}
package Exception;

public class Text1 {
    public static void main(String[] args) {
        try {
            saveAge(160);
            System.out.println("底层运行成功");
        } catch (Exception e) {
           e.printStackTrace();
            System.out.println("底层出现问题");
        }
    }

    public static void saveAge(int age){
        if(age > 0 && age <150){
            System.out.println("年龄被成功保存" + age);
        }
        else{
            //异常对象封装问题
            /*
            * 1.定义一个异常类继承RuntimeException
            * 2.重写构造器
            * 3.通过throw new 异常类 来创建异常类并抛出,编译阶段不报错
            * */
            throw new Ageillega("/age is illegal, your age is "+age);
            //throw抛出去异常对象
        }
    }
}

2.自定义编译时异常

 还是封装异常对象类,提醒更强烈,引起注意

  •  throw  是抛出异常对象
  • throws 是用在方法上,抛出方法内部的异常
package Exception;

public class AgeillegaException extends Exception{

    public AgeillegaException() {
    }

    public AgeillegaException(String message) {
        super(message);
    }
}
package Exception;

public class Text1 {
    public static void main(String[] args) {
        try {
            saveAge(160);
            System.out.println("底层运行成功");
        } catch (Exception e) {
           e.printStackTrace();
            System.out.println("底层出现问题");
        }
    }

    public static void saveAge2(int age) throws AgeillegaException {
        if (age > 0 && age < 150) {
            System.out.println("年龄被成功保存" + age);
        } else {

            throw new AgeillegaException("/age is illegal, your age is " + age);
            //throw抛出去异常对象
        }
    }
    public static void saveAge(int age){
        if(age > 0 && age <150){
            System.out.println("年龄被成功保存" + age);
        }
        else{

            throw new Ageillega("/age is illegal, your age is "+age);
            //throw抛出去异常对象
        }
    }
}

3.异常的处理

常见的处理方式:

  1.    捕获异常,记录异常并响应合适的信息给用户
  2.    捕获异常,尝试重修修复      

解决方法:      1. 使用try-catch 语句捕获,检测语句错误,返回报错信息

                        2.使用 throws 抛出错误提醒 返回报错信息

                                                                                                                        学习时间 2024.8.9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1996459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海思开发套件体验记录

DAY_01&#xff1a; 前一段时间&#xff0c;仰仗工作室的支持&#xff0c;有幸参加了华为海思社区举办的首批入选星闪开发者体验官活动&#xff01;&#xff01;&#xff01; 今天收到海思官方寄过来的海思星闪派开发套件啦&#xff01;&#xff0c;很开心&#xff0c;非常感谢…

VScode找python环境 (conda)

第一步 CtrlshiftP 第二步 框框里输入&#xff1a;Python:Select Interpreter

鸿蒙(API 12 Beta3版)【时域可分层视频编码】 音视频编码

基础概念 时域可分层视频编码介绍 可分层视频编码&#xff0c;又叫可分级视频编码、可伸缩视频编码&#xff0c;是视频编码的扩展标准&#xff0c;目前常用的包含SVC&#xff08;H.264编码标准采用的可伸缩扩展&#xff09;和SHVC&#xff08;H.265编码标准采用的可扩展标准&…

【JavaEE初阶】线程安全的集合类

&#x1f4d5; 引言 我们之前讲过的集合类&#xff0c;,大部分都不是线程安全的. Vector, Stack, HashTable, 是线程安全的(都是自带了synchronized,不建议用), 其他的集合类不是线程安全的。 注意&#xff1a;加锁不能保证线程一定安全&#xff0c;不加锁也不能确定线程一定…

spark-python

前言:本帖子是看了黑马教学视频结合spark八股,记录一下spark的知识. 一.spark介绍 1.1 spark的运行模式 1.2 spark的架构角色 在讨论spark的架构角色时,首先先回顾一下yarn的架构角色. spark架构角色: 二.standalone 运行原理 2.1standalone架构 standalone中有三类进程: m…

AI称重收银一体秤

系统介绍 专门为零售行业的连锁店量身打造的收银系统&#xff0c;适用于常规超市、生鲜超市、水果店、便利店、零食专卖店、服装店、母婴用品、农贸市场等类型的门店使用。同时线上线下数据打通&#xff0c;线下收银的数据与小程序私域商城中的数据完全同步&#xff0c;如商品…

如何在 Windows 11/10/8/7 中恢复已删除和未保存的记事本文本文件

很多原因都会导致未保存的记事本文本文件丢失。这些包括意外关闭、系统崩溃或电源故障等。无论丢失文本文件的原因是什么&#xff0c;相关的焦虑都是一样的。如果您遇到这种情况&#xff0c;可以使用以下有效方法在 Windows 11/10/8/7 中恢复已删除的文本文件。在这篇文章中&am…

NFT Insider #142:Mocaverse 在 The Sandbox 中推出 Mocaland 体验,Azuki 推出新系列动画片

NFT Insider 浓缩每周 NFT 新闻&#xff0c;为大家带来关于 NFT 最全面、最新鲜、最有价值的讯息。每期周报将从 NFT 市场数据&#xff0c;艺术新闻类&#xff0c;游戏新闻类&#xff0c;虚拟世界类&#xff0c;其他动态类&#xff0c;五个角度剖析 NFT 市场现状&#xff0c;了…

从新手到专家:2024年四大电脑录屏软件满足不同需求

电脑录屏是我们记录和分享信息的重要方式。无论是专业领域的技术演示&#xff0c;还是个人爱好的展示&#xff0c;一个好的录屏工具都能让我们的表达更加生动和直观。下面&#xff0c;就让我们一起探索几款市面上备受好评的电脑录屏软件。 福昕REC 链接&#xff1a;www.foxit…

金九银十,全网最详细的软件测试面试题总结

前面看到了一些面试题&#xff0c;总感觉会用得到&#xff0c;但是看一遍又记不住&#xff0c;所以我把面试题都整合在一起&#xff0c;都是来自各路大佬的分享&#xff0c;为了方便以后自己需要的时候刷一刷&#xff0c;不用再到处找题&#xff0c;今天把自己整理的这些面试题…

A股继续震荡盘整,无力回天还是蓄势待发?

今日A股走势十分反常&#xff0c;恐有大事将要发生了&#xff0c;直奔主题&#xff0c;马上告诉给所有人&#xff01; 1、今天A股走势反常&#xff0c;昨夜外围纳指上涨2.87%&#xff0c;中概股也大涨了。今天亚太股市也在拉升&#xff0c;而A股却冲高回落&#xff0c;再度翻绿…

牛客JS题(二十八)控制动画

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; css动态效果前提判断类型判断 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charset"utf-8" /><style type"text/css">#rect {width: 100px;he…

面试题(六)

1、等于操作符 “ ” 和全等操作符 “ ” 区别 有类型隐式转换&#xff0c;会先进行类型转换&#xff0c;再确定操作数是否相等&#xff08;若类型比较&#xff09;。 null undefined 结果为 true 没有类型隐式转换&#xff0c;只有两个操作数在不转换的前提下相等&#xff…

如何在 Android 手机/平板电脑上恢复误删除的 DCIM 文件夹

DCIM 文件夹是智能手机和平板电脑上最重要的文件夹之一。许多人报告说他们在 Android 设备上遇到了 DCIM 文件夹为空的问题。实际上&#xff0c;这种情况大多数情况下都会发生&#xff0c;当您意外从 Android 设备中删除 DCIM 文件夹或因病毒攻击、应用程序问题和意外格式化等原…

Android系统安全 — 6.5 Bluetooth安全连接原理

1 蓝牙协议架构和简称 蓝牙协议栈主要分&#xff1a;APPS层&#xff08;应用层&#xff0c;包括音频播放器&#xff0c;蓝牙遥控&#xff0c;智能家居APP等&#xff09;&#xff0c; HOST层&#xff08;中间层协议&#xff0c;包括GAP,SMP,ATT/GATT, L2CAP, AMP Manager&#x…

6自由度机械手DH坐标系建立

一、建立机械臂DH坐标系 Z为转动关节的转轴&#xff0c;Xi垂直于关节轴i和i1所在的平面&#xff0c;则根据上述方法可以建立坐标系如下图&#xff1a; 二、DH参数表 DH参数设定&#xff1a;机器人的每个连杆可以用4个运动学参数表示&#xff0c;DH法建立坐标系&#xff0c;xi-…

『状态模式』

首先创建一个项目 打开项目后复制至3个场景 命名为 创建一个空物体 命名为GameLoop 创建一个脚本GameLoop.cs 编写代码如下 将代码挂载至空物体GameLoop 将三个场景拖拽至Scenes In Build 分析下状态模式的类图 我们创新类图中的代码 编写ISceneState.cs 编写三个状态子类继承构…

Rust学习----Rust安装

如何安装Rust&#xff1f; 1.官网&#xff1a;https://www.rust-lang.org/zh-CN/ 2.Linux or Max: curl https://sh.rustup.rs -sSf | sh 3.Windows按官网指导安装。 4.Windows Subsystem for Linux&#xff1a; curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs…

2024年软件测试八股文(含答案+文档)

1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&…

Redis 数据结构深度解析

在浩瀚的数据存储海洋中&#xff0c;Redis以其卓越的性能和丰富的数据结构脱颖而出&#xff0c;成为众多开发者心中的瑰宝。作为一个高性能的键值存储系统&#xff0c;Redis不仅支持基础的字符串类型&#xff0c;还提供了哈希、列表、集合、有序集合等复杂数据结构&#xff0c;…