实验六 异常处理

news2024/9/22 13:36:54
  • 实验目的及要求

目的:了解异常的概念,掌握异常处理的方法,掌握throws与throw关键字的区别与联系,掌握自定义异常的方法及用途。

要求:

(1)编写程序了解程序中可能出现的运行时异常与非运行时异常

(2)编写程序使用try-catch-finally处理异常

(3)编写程序掌握throws与throw的用法

(4)理解系统异常处理的机制和创建自定义异常的方法

二、实验环境

计算机一台,JDK,EditPlus

三、实验原理

异常处理方法

四、实验内容与步骤

1. 文件操作异常(分析该程序存在哪些运行时异常和非运行时异常,并将程序改正确)

2. 数组下标越界异常(找到程序中的异常,并将其改正)

3.try-catch-finally处理异常过程

4.抛出异常(注意该程序与之前的Exception1出现的异常的异同)

5. 捕获异常(在Exception1的基础上加上捕获异常,观察程序运行结果)

6. try-catch-finally嵌套

7. 自定义异常调用

. 实验完成项目

(1)程序功能:通过继承Exception异常类,创建一个自定义异常类MyException,然后再创建一个主类,使用自定义异常类MyException。

(2)在编写程序过程中,如果希望一个字符串的内容全部是英文字母,若其中包含其他的字符,则抛出一个异常。因为在Java内置的异常类中不存在描述该情况的异常,所以需要我们自定义该异常类。

a.创建MyException异常类,此部分要求读者自己编写。

b.创建Exercise5_5类,在此类中创建一个带有String型参数的方法check(),该方法用来检查参数中是否包含英文字母以外的字符。若包含,则通过throw抛出一个MyException异常对象给check()方法的调用者main()方法。此部分代码已给出,要求根据下面的代码写出自定义类MyException的代码。

public class Exercise5_5 {

    public static void check(String str) throws MyException { //指明要抛出的异常

        char a[] = str.toCharArray(); //将字符串转换为字符数组

        int i = a.length;

        for (int k = 0; k < i - 1; k++) { //检查字符数组中的每个元素

            //如果当前元素是英文字母以外的字符

            if (!((a[k] >= 65 && a[k] <= 90) || (a[k] >= 97 && a[k] <= 122))) {

                //抛出MyException异常类对象

                throw new MyException("字符串\"" + str + "\"中含有非法字符!");

            }

        }

    }

    public static void main(String[] args) {

        String str1 = "HellWorld";

        String str2 = "Hell!MR!";

        try {

            check(str1); //调用check()方法

            check(str2); //执行该行代码时,抛出异常

        } catch (MyException e) { //捕获MyException异常

            System.out.println(e.getContent()); //输出异常描述信息

        }

    }

}

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

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

相关文章

摆花 NOIP2012普及组

目录 思路 代码 思路 代码 #include <iostream> #include <algorithm>using namespace std; using LL long long;const int N 1e2 9; const int mod 1e6 7;int n,m; LL a[N]; LL f[N][N];void solve() {cin >> n >> m;f[0][0] 1;for (int i 1;…

Jmeter模拟用户登录时获取token如何跨线程使用?

一、用户定义的变量 1、添加"用户定义的变量" 2、填写"host、port" 二、setUp线程组 1、添加"setUp线程组" 2、设置循环次数"100" 三、CSV 数据文件设置 1、添加"CSV 数据文件设置" 2、填写信息"用户登录数据.csv、…

2024 天池云原生编程挑战赛决赛名单公布,9 月 20 日开启终极答辩

历时 4 个月&#xff0c;2024 天池云原生编程挑战赛决赛名单公布&#xff01; 本届大赛规模创新高&#xff0c;参赛战队达 20000 支&#xff0c; 广覆盖国内外优秀高校和杰出企业&#xff01;吸引了来自北京大学、清华大学等 176 所国内外优秀高校&#xff0c;以及美团、米哈游…

vue3+ts项目import导入路径用@/报错找不到模块“@/components/也没有快捷提示

解决办法 在tsconfig.json文件中加入以下代码 "compilerOptions": {"baseUrl": ".","paths": {"/*": ["./src/*"] }}, 喏 ☟

【开端】服务器间免密登录配置

1.首先进入源 服务器中&#xff0c;进入/root/.ssh路径下 2.将路径下的”id_rsa.pub”文件复制到目标服务器的/root/.ssh路径下 3.打开目标服务器/root/.ssh路径中的“authorized_keys”文件&#xff0c;如没有则创建&#xff0c;并将”id_rsa.pub”文件中的内容复制到“auth…

ctfshow-爆破(web21-web28)

web21 提交用户和密码后发现没有用户以及密码的值呢 常见的是在post数据中 或者url后传值 但这里都没有 发现http头有一个Authorization字段 值是base64编码后的 解码 原来是将传入的值用冒号分离进行base64编码然后放到了Authorization字段中了 设置变量 增加前缀 增加编码方…

Spring6梳理6——依赖注入之Setter注入

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 目录 一、引言 二、Java方法初始化过程 2.1 set方法及构造器方法实现Book对象初始化 三…

深入浅出SRS—RTMP实现

RTMP 直播是 SRS 最典型的使用场景&#xff0c;客户端使用 RTMP 协议向 SRS 推流&#xff0c;使用 RTMP 协议从 SRS 拉流&#xff0c;SRS 作为一个 RTMP 直播服务器实现媒体的转发。同时&#xff0c;RTMP 是 SRS 的中转协议&#xff0c;其他协议之间的互通需要先转为 RTMP&…

机器学习:数据清洗流程及完整代码实现

概述&#xff1a; 在处理数据之前&#xff0c;需要进行数据质量分析&#xff0c;了解数据的功能和作用&#xff0c;检查原始数据中是否存在脏数据。脏数据一般是指不符合要求以及不能直接进行相应分析的数据。 脏数据往往存在如下问题&#xff1a;没有列头&#xff0c;一个列有…

【CanMV K230】线段检测

【CanMV K230】线段检测 什么是线段检测线段检测应用领域1.地图解析中的道路、建筑轮廓提取2.计算机视觉中的物体识别和跟踪。3.机器人导航和环境理解。4.图像分割和特征点提取。5.建筑测量和图像重建。6.OCR&#xff08;光学字符识别&#xff09;预处理。7.行人检测和交通标志…

html+css+js网页设计 宝石及材料与工艺学专业知识科普与学习11个页面 带报告

htmlcssjs网页设计 宝石及材料与工艺学专业知识科普与学习11个页面 带报告 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&a…

免费分享:2014-2018年全球5.0级及以上地震正式报目录数据集

数据详情 本数据集为2014年—2018年中国台网正式目录&#xff08;统一编目目录&#xff09;全球5.0及以上地震6459次地震数据&#xff0c;属性字段包含发震时刻、经度、纬度、深度、地震类型、震级、参考位置、事件类型等。 数据属性 数据名称&#xff1a;全球5.0级及以上地震…

【数学建模】2024数学建模国赛B题(word论文+matlab):生产过程中的决策问题

详情请见&#xff1a;https://mbd.pub/o/bread/mbd-ZpqblZ5u 文章目录 一、问题二、解答2.1 问题一2.2 问题二2.3 问题三2.4 问题四 一、问题 某企业生产某种畅销的电子产品&#xff0c;需要分别购买两种零配件&#xff08;零配件1和零配件2&#xff09;&#xff0c;在企业将两…

gcn(从空间域理解)

一、背景 常见的神经网络&#xff0c;如BP神经网络可以用来处理表格型的数据&#xff0c;卷积神经网络可以用来处理图片数据&#xff0c;循环神经网络则可以用来处理序列数据&#xff0c;这些数据都是结构化的数据&#xff0c;当我们需要处理的数据为图这种非结构化的数据&…

黑马点评9——附近商户-GEO数据结构

文章目录 GEO数据结构的基本用法导入店铺数据结构到GEO实现附件商户功能 GEO数据结构的基本用法 导入店铺数据结构到GEO 数据库里没法实现按照地理坐标排序等复杂的搜索功能&#xff0c;我们把数据存到redis中&#xff0c;只需要保存id和对应的x以及y的坐标&#xff0c;就可以…

一键部署Phi 3.5 mini+vision!多模态阅读基准数据集MRR-Benchmark上线,含550个问答对

小模型又又又卷起来了&#xff01;微软开源三连发&#xff01;一口气发布了 Phi 3.5 针对不同任务的 3 个模型&#xff0c;并在多个基准上超越了其他同类模型。 其中 Phi-3.5-mini-instruct 专为内存或算力受限的设备推出&#xff0c;小参数也能展现出强大的推理能力&#xff…

使用Cskin时候 遇到按钮有默认阴影问题解决

使用Cskin时候 遇到按钮有默认阴影 设置 DrawType 属性就可以了

【应用】浅谈大模型的应用场景

在人工智能(AI)的发展历程中&#xff0c;大模型无疑是一个重要的里程碑。这类模型通过海量数据的训练&#xff0c;其参数量都达到了千亿甚至万亿的规模&#xff0c;具备了强大的语言理解和生成能力&#xff0c;能够完成各种复杂的自然语言处理任务。 大模型在各种领域都有广泛的…

Web day0906

ok了家人们&#xff0c;今天开始学习javaweb&#xff0c;我们一起看看吧 一.WEB开发介绍 1.1 WEB介绍 Web &#xff08; World Wide Web &#xff09;即全球广域网&#xff0c;也称为万维网。简 单说&#xff0c;能够通过浏览器访问的网站。在我们日常的生活中&#xff0c;经…

【JAVA基础】StringUtils.isEmpty、StringUtils.isBlank()、Objects.isNull()三者区别

&#x1f4dd;个人主页&#x1f339;&#xff1a;个人主页 ⏩收录专栏⏪&#xff1a;日常经验 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339;&#xff0c;让我们共同进步&#xff01; 总是区分不清楚这几个的差别&#xff1a;我们来直接验证一下&#…