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");}}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK3568驱动指南|第十篇 热插拔-第112章 热插拔简介

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

window mysql5.7 搭建主从同步环境

window 搭建mysql5.7数据库 主从同步 主节点 配置文件my3308.cnf [mysql] # 设置mysql客户端默认字符集 default-character-setutf8mb4[mysqld] server-id8 #server-uuidbc701be9-ac71-11ee-9e35-b06ebf511956 log-binD:\mysql_5.7.19\mysql-5.7.19-winx64\mysql-bin binlog-…

22nxxz

难度简单,适合练手! 期末考试前最后一篇博客,还是很感谢范老师,范老师帮我突破了后台的思路mua! 一、请检查窝点中的手机检材,回答以下问题 直接分析不行,sd卡需要解压缩 该OPPO手机的IMEI是:860370043989014,860370049389006860370049389014,8603700493890068603700…

安卓 APK 如何查看公钥与签名 MD5 值、JadxGUI 工具的使用。

下载地址 https://gitcode.com/skylot/jadx/overview?utm_sourcecsdn_github_accelerator&isLogin1 也可以在这里下载 https://download.csdn.net/download/u010843503/88725345

Web缓存代理

目录 前瞻 web缓存代理的工作机制 web缓存代理的作用 常见的Web缓存代理应用 squid、Varinsh和Nginx有什么区别,工作中你怎么选择? 数据库缓存代理应用 Nginx 缓存代理 CDN缓存代理 简介 原理 CDN对网络的优化作用主要体现在如下几个方面 CDN…

phpstorm配置ftp

1 选择设置ftp 2设置自动上传

NOIP2012提高组day1-T3:开车旅行

题目链接 [NOIP2012 提高组] 开车旅行 题目描述 小 A \text{A} A 和小 B \text{B} B 决定利用假期外出旅行,他们将想去的城市从 1 1 1 到 n n n 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同&#xf…

Superset二次开发之环境准备-Nodejs

一、下载安装Nodejs ① 打开nodejs官网 Node.js 击下载LTS版本. 不建议下载最新版,会有版本冲突.可以先查看一下所有版本 Previous Releases | Node.js , 我下载的Node.js 16.20.2 ,下载地址 https://nodejs.org/dist/v16.20.2/node-v16.20.2-x64.msi ② 直接安装 ③ 这…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -创建图文投票实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

哔哩哔哩浏览器 AI 助手:bilibili subtitle

分享一个好用不火的浏览器插件,能够让我们在浏览 B 站视频的时候体验更棒。 写在前面 B 站视频时间越来越长的今天,在打开视频的时候,如果能够清晰直观的看到视频字幕,当我们点击带有时间轴的字幕就能够一键跳转到自己想看的视频…

阻止持久性攻击改善网络安全

MITRE ATT&CK框架是一个全球可访问的精选知识数据库,其中包含基于真实世界观察的已知网络攻击技术和策略。持久性是攻击者用来访问系统的众多网络攻击技术之一;在获得初始访问权限后,他们继续在很长一段时间内保持立足点,以窃取数据、修改…

Python 与 PySpark数据分析实战指南:解锁数据洞见

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 数据分析是当今信息时代中至关重要的技能之一。…