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

java异常习题

1.有关下述Java代码描述正确的选项是

public class TestClass {private static void testMethod(){System.out.println("testMethod");}public static void main(String[] args) {((TestClass)null).testMethod();}}

A.编译不通过

B.编译通过,运行异常,报NullPointerException

C.编译通过,运行异常,报IllegalArgumentException

D.编译通过,运行异常,报NoSuchMethodException

E.编译通过,运行异常,报Exception

F.运行正常,输出testMethod

答案:F

解析:testMethod()方法是由static修饰的方法通过类名进行方法调用,所以该方式是正确的。

2.下列程序的运行结果

public void getCustomerInfo() {try {// do something that may cause an Exception} catch (java.io.FileNotFoundException ex) {System.out.print("FileNotFoundException!");} catch (java.io.IOException ex) {System.out.print("IOException!");} catch (java.lang.Exception ex) {System.out.print("Exception!");}}

A.IOException!

B.IOException!Exception!

C.FileNotFoundException!IOException!

D.FileNotFoundException!IOException!Exception!

答案:A

解析:FileNotFoundException为IOException的子类,IOException为Exception的子类,但是代码执行时只会捕获一个异常所以可以排除其他选项,只有A是打印一个异常。

3.下面有关JAVA异常类的描述,说法错误的是?

 A. 异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception

B.非RuntimeException一般是外部错误(非Error),其必须被 try{}catch语句块所捕获

C. Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉

D.RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try{}catch语句块所捕获

答案:BD

解析: 如果在一个方法中遇到了一个非RuntimeException,并且在方法签名中声明了这个异常(使用throws关键字),那么你就不需要在方法内部捕获它。调用这个方法的代码将需要处理这个异常(要么捕获它,要么在方法签名中声明它)。

4.实现一个简单的控制台版用户登陆程序

程序启动提示用户输入用户名密码. 如果用户名密码出错, 使用自定义异常的方式来处理

package config;public class Login {private static String userName = "admin";private String password = "1234";public static void loginInfo(String name, String password) throws UserNameException, PasswordException {if (!userName.equals(userName)) {throw new UserNameException("用户名错误");}if (!password.equals(password)) {throw new PasswordException("密码错误");}System.out.println("登录成功");}public static void main(String[] args) {try{loginInfo("admin","1234");}catch(UserNameException e){e.printStackTrace();}catch(PasswordException e){e.printStackTrace();}}}
package config;public class UserNameException  extends Exception{public UserNameException(String message){super(message);}}

 

package config;class  PasswordException extends Exception{public PasswordException(String message){super(message);}}

相关文章:

  • 迎七一党史知识竞赛答题怎么做
  • 5月31日,每日信息差
  • 04.docker的主要组成部分
  • 程序员应该有什么职业素养?
  • “云原生安全:构建弹性且安全的云上环境的关键要素“
  • 设计模式深度解析:分布式与中心化
  • 让抖店商家内卷的“改价系统”是什么?商家如何防止内卷!
  • CRM系统多少钱一套?收费标准详解
  • 领域驱动设计(DDD)学习笔记之:战术设计
  • 对系统管理员有用的 NMAP 命令
  • 深入解析Java多线程:源码级别的分析与实践
  • java面试题及答案2024,java2024最新面试题及答案(之二)
  • 机器学习中的距离公式
  • 【网络协议 | HTTP】HTTP总结与全梳理(一) —— HTTP协议超详细教程
  • 接口测试JSON/XML请求
  • 【css3】浏览器内核及其兼容性
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 03Go 类型总结
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • express + mock 让前后台并行开发
  • gitlab-ci配置详解(一)
  • IDEA常用插件整理
  • Promise面试题2实现异步串行执行
  • Python利用正则抓取网页内容保存到本地
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Tornado学习笔记(1)
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • Spring Batch JSON 支持
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ‌内网穿透技术‌总结
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • $.ajax()参数及用法
  • (2022 CVPR) Unbiased Teacher v2
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (pycharm)安装python库函数Matplotlib步骤
  • (分布式缓存)Redis分片集群
  • (回溯) LeetCode 131. 分割回文串
  • (十七)、Mac 安装k8s
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)可以带来幸福的一本书
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .Net 8.0 新的变化
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .net反混淆脱壳工具de4dot的使用