当前位置: 首页 > news >正文

java基础之异常练习题

异常

1.Java 中所有的错误/异常都继承自 Throwable类;在该类的子类中, Error 类表示严重的底层错误, 对于这类错误一般处理的方式是 直接报告并终止程序  Exception 类表示异常。

2.查阅API,完成以下填空:

(1)异常类java.rmi.AlreadyBoundException,从分类上说,该类属于 已检查 (已检查|运行时)异常, 从处理方式上说,对这种异常 抛出 处理。

(2)异常类java.util.regex.PatternSyntaxException,从分类上说,该类属于 运行时 (已检查|运行时) 异常,从处理方式上说,对这种异常 try catch处理。

3.Java 中用来抛出异常的关键字是()

A. try B. catch C. throw D. finally

4.在异常处理中,释放资源、关闭文件等应由  处理()

A.  try 语句 B. catch 语句 C. finally 语句 D. throw 语句

5.finally 语句块中的代码()

  1. 总是被执行
  2. 当try 语句块后面没有catch 时,finally 中的代码才会被执行
  3. 异常发生时才被执行
 
  1. 异常没有发生时才被执行

6.自定义异常类时,可以继承的类是()

A. Error    B. ArrayList C. Exception 不行D. NullPointerException

7.对于 try{ ... }catch...语句的排列方式,下列描述正确的是()

  1. 子类异常在前,父类异常在后
  2. 父类异常在前,子类异常在后
  3. 只能有子类异常
  4. 父类异常不能与子类异常同时出现

8.仔细阅读以下代码,将代码补全。

 throw new NullPointException();

try{

throw new ClassCastException(“类型转换出错”);

}catch(ClassCastException e){

System.out.orintln(e.getMessage());

}

9.代码改错:仔细阅读以下程序,将错误的代码进行改正。

class MyException extends RuntimeException;

try{

m();

}catch(ArithmeticException e){

System.out.println(“ArithmeticException”);

}catch(Exception e){

System.out.println(“Exception”);

}finally{

return 100;

}

 

10.仔细阅读以下代码,当读入的 n 分别为 1,2,3,4,5 时,输出的结果分别是什么?

为1时:

main1

ma1

mb1

catch EOFException

In Finally

main2

为2时:

 main1

ma1

mb1

catch IOException

In Finally

main2

为3时:

main1

ma1

mb1

catch SQLException

In Finally

main2

为4时:

main1

ma1

mb1

catch Exception

In Finally

main2

11. 仔细阅读以下代码:

在//1 处,填入以下 AB 代码可以编译通过,在//2 处,填入 D 代码可以编译通过

  1. throws java.io.IOException
  2. throws java.io.FileNotFoundException, java.io.EOFException
 
  1. throws java.sql.SQLException
  2. 不能抛出任何异常

12.仔细阅读以下代码,关于程序描述正确的是()

A. 不通过  未初始化变量 B. 编译通过,输出-1

C. 编译通过,输出 0 D. 以上描述都不正确

13.仔细阅读以下代码,在ma 方法中,当读入的b 为 100 时,输出结果为 100 ,当读入的b 为 0 时,输出结果为 100  

14.仔细阅读以下代码,在ma 方法中,读入整数b,如果读入的值为 10,则输出 ma1, ma21,In fianlly ;如果读入的值为 0,则输出 ma1,In Finally

15.仔细阅读以下代码,是否能编译通过?如果不能,应该如何修改?

class MySub2 extends MySub{

    public void m() throws EOFException{}

}

16.仔细阅读以下代码,关于程序描述正确的是()

A. 编译出错

B. 编译正常,输出 main1 ma1 In Catch

C. 编译正常,运行时出错

D. 以上描述都不正确

17.仔细阅读以下程序,下面哪些代码放在/*1*/处可以编译通过()

A. catch(NullPointerException npe){}

B. catch(IOException ioe){}

C. catch(SQLException sqle){}

18.简述 final、finlize、finally 的区别。

fianl 是一个修饰符,用来修饰类,引用,方法,属性,表示最后的,不可更改的

final

1.当它修饰一个变量时,表示这个变量是常量,一旦赋值就不能被修改。

2.当它修饰一个方法时,表示这个方法不能被子类重写。

3.当它修饰一个类时,表示这个类不能被继承。

finalize: 是Java中Object类的一个方法,也被称为终结器方法。当垃圾收集器决定回收一个对象时,会首先调用该对象的finalize方法。这个方法在Java中被视为一种特殊的"逃逸区",允许对象在垃圾回收前进行一些清理工作。然而,由于性能问题,从Java 9开始,finalize方法已被弃用。

finally: 是Java中异常处理的一部分。在try-catch-finally结构中,无论try块中的代码是否抛出异常,finally块中的代码总是会被执行。这使得finally块成为处理清理工作的理想场所,例如关闭文件、网络连接等。

19.在 try 里有 return 语句,那 finally 里的语句还会执行么?为什么?

会,因为里边的内容必须被执行

如果在 try 块中有 return 语句,那么 finally 块中的代码仍然会被执行。这是因为 finally 块是异常处理的一部分,它的作用是确保一些必要的清理工作被执行,无论 try 块中的代码是否成功执行或抛出异常

20.仔细阅读以下代码,写出程序执行的结果。

StepB    SetpE

21. 编程:创建两个自定义异常类 MyException1 和 MyException2,要求如下:

(1) MyException1 为已检查异常,MyException2 为运行时异常;

(2) 这两个异常均具有两个构造函数:一个无参,另一个带字符串参数,参数表示产生异常的信息。

package com.by.exception;public class MyRuntimeException extends NullPointerException{public MyRuntimeException(){}public MyRuntimeException(String message){super(message);}
}
class Test{public static void main(String[] args) {try {throw new MyRuntimeException("我的详细信息");} catch (MyRuntimeException e) {System.out.println(e.getMessage());}throw new ClassCastException();}
}package com.by.exception;public class MyException2 extends Exception{public MyException2(){}public MyException2(String message){super(message);}}

22.在上一题的基础上,把下面代码补充完整。

 输出ex1详细放大调用栈信息

System.out.println(ex1.getMessage);package com.by.exception;public class TestMyException {public static void main(String[] args) throws MyException2 {int n;n=3;try {m(n);} catch (MyException1 ex1) {System.out.println(ex1.getMessage());}catch (MyException2 ex2){System.out.println(ex2.getMessage());throw new MyException2("n==2");}}public static void m(int n) throws MyException1, MyException2 {if (n==1){throw new MyException1("n==1");}else{throw new MyException2("n==2");}}
}

相关文章:

java基础之异常练习题

异常 1.Java 中所有的错误/异常都继承自 Throwable类;在该类的子类中, Error 类表示严重的底层错误, 对于这类错误一般处理的方式是 直接报告并终止程序 ; Exception 类表示异常。 2.查阅API,完成以下填空:…...

智慧旅游景区解决方案:PPT全文49页,附下载

关键词:智慧景区建设,智慧旅游平台,智慧旅游运营检测系统项目,智慧文旅,智慧景区开发与管理,智慧景区建设核心,智慧景区开发与管理 一、智慧景区建设现状 1、基础设施建设:智慧景区…...

Demo: 给图片添加自定义水印并下载

给图片添加自定义水印并下载 <template><div class"wrap"><div class"optea"><div class"file-upload"><p>选择图片</p><el-button type"text" style"color: #c00;"><label f…...

黑马苍穹外卖学习Day5

文章目录 Redis学习Redis简介准备工作Redis常用数据类型介绍各数据类型的特点Redis常用命令字符串操作命令哈希操作命令列表操作命令集合操作命令有序集合操作命令通用操作命令 在Java中操作Redis导入Spring Data Redis坐标配置Redis数据源编写配置类&#xff0c;创建RedisTemp…...

【.NET Core】可为null类型详解

【.NET Core】可为null类型详解 文章目录 【.NET Core】可为null类型详解一、概述二、可为空的值类型2.1 声明和赋值2.2 检查可为空值类型2.3 基础类型与可为空的值类型互换2.4 可为空的值类型装箱和取消装箱2.5 如何确定可为空的值类型 三、可为 null 的引用类型 一、概述 nu…...

基于知识图谱的健康知识问答系统

基于知识图谱的健康知识问答系统 引言数据集与技术选型数据集技术选型 系统功能与实现数据导入与图数据库构建问答任务设计与实现1. 实体提取2. 用户意图识别 前端聊天界面与问答系统 结语 引言 随着互联网的发展&#xff0c;人们对健康知识的需求逐渐增加。为了更方便地获取健…...

橘子学K8S03之容器的理解

前面我们知道了容器是通过对一个普通的linux进程进行隔离和限制实现的一种特殊视角下的进程表现。而隔离和限制的实现技术分别是"Namespace"和“Cgroups”,在这两种机制的控制下&#xff0c;我们需要知道容器的本质是一种特殊的进程。 我们现在有了这个认知之后&…...

算法第十二天-矩形区域不超过K的最大数值和

矩形区域不超过K的最大数值和 题目要求 解题思路 来自[宫水三叶] 从题面来看显然是一道[二维前缀和]的题目。本题预处理前缀和的复杂度为O(m* n) 搜索所有子矩阵需要枚举[矩形左上角]和[矩形右下角]&#xff0c;复杂度是 O ( m 2 ∗ n 2 ) O(m^2 * n^2) O(m2∗n2)&#xff0c…...

【js】js数组对象去重:

文章目录 一、Map()二、对象访问属性的方法三、indexOf()四、双层for循环 let arrObj [{ name: "小红", id: 1 },{ name: "小橙", id: 1 },{ name: "小黄", id: 4 },{ name: "小绿", id: 3 },{ name: "小青", id: 1 },{ na…...

python高校舆情分析系统+可视化+情感分析 舆情分析+Flask框架(源码+文档)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…...

Phaser详解

Phaser是一个相对较新且功能强大的同步原语&#xff0c;它于Java 7中引入&#xff0c;用于协调并行任务的执行。与CyclicBarrier和CountDownLatch等传统的同步工具相比&#xff0c;Phaser提供了更灵活和更高级的功能&#xff0c;特别是在处理动态和可变的并行任务集合时。 1.P…...

2个nodejs进程利用redis 实现订阅发布

1.新建文件 redis_db.js use strict;const redis require(redis); const options {host: "127.0.0.1",port: 6379,password: "123456", // CONFIG SET requirepass "123456" }var array [] for(var i0; i<3; i){const client redis.crea…...

LeetCode——2397. 被列覆盖的最多行数

通过万岁&#xff01;&#xff01;&#xff01; 题目&#xff1a;给你一个二维数组&#xff0c;然后里面是0和1&#xff0c;然后让你从里面选择numSelect列&#xff0c;使得去掉选择的列以后不存在1的行的数量最少。思路&#xff1a; 看到这个题目&#xff0c;本来以为是每一列…...

java通过HttpClient方式实现https请求的工具类(绕过证书验证)

目录 一、引入依赖包二、HttpClient方式实现的https请求工具类三、测试类 一、引入依赖包 引入相关依赖包 <!--lombok用于简化实体类开发--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><option…...

【自学笔记】01Java基础-07面向对象基础-04接口与内部类详解

记录学习Java基础中有关接口类和内部类的知识。 1 接口 interface 关键字用于定义接口类&#xff0c;接口类是一系列方法的声明&#xff0c;一般只有方法的特征没有方法的实现&#xff0c;因此可以被不同的类接入实现&#xff0c;而这些实现可以具有不同的行为&#xff08;功…...

【cmu15445c++入门】(5)c++中的模板类

一、template模板类 除了模板方法【cmu15445c入门】(4)c中的模板方法 模板也可以用来实现类 二、代码 /*** file templated_classes.cpp* author Abigale Kim (abigalek)* brief Tutorial code for templated classes.*/// Includes std::cout (printing). #include <io…...

MongoDB聚合:$bucket

$bucket将输入文档按照指定的表达式和边界进行分组&#xff0c;每个分组为一个文档&#xff0c;称为“桶”&#xff0c;每个桶都有一个唯一的_id&#xff0c;其值为文件桶的下线。每个桶中至少要包含一个输入文档&#xff0c;也就是没有空桶。 使用 语法 {$bucket: {groupBy…...

从优化设计到智能制造:生成式AI在可持续性3D打印中的潜力和应用

可持续性是现代工业中一个紧迫的问题&#xff0c;包括 3D 打印领域。为了满足环保制造实践日益增长的需求&#xff0c;3D 打印已成为一种有前景的解决方案。然而&#xff0c;要使 3D 打印更具可持续性&#xff0c;还存在一些需要解决的挑战。生成式人工智能作为一股强大的力量&…...

vue3 响应式api中特殊的api

系列文章目录 TypeScript 从入门到进阶专栏 文章目录 系列文章目录一、shallowRef()二、triggerRef()三、customRef()四、shallowReactive()五、shallowReadonly()六、toRaw()七、markRaw()八、effectScope()九、getCurrentScope() 一、shallowRef() shallowRef()是一个新的响…...

【大厂算法面试冲刺班】day2:合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 递归 class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if (l1 null) {return l2;}else if (l2 null) {return l1;}else if (l1.val < l2.…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...