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

异常 Exception 练习题 (未完成)

异常 Exception 练习题

  • try-catch异常处理
    • 1
    • 2
    • 3
    • 4
  • 异常
    • 1(没有自己写)
    • 2
    • 3
    • 4

try-catch异常处理

1

class Exception01 {public static int method() {try {String[] names = new String[3];//String[]数组if (names[1].equals("tom")) {//NullPointerExceptionSystem.out.println(names[1]);} else {names[3] = "hspedu";}return 1;} catch (ArrayIndexOutOfBoundsException e) {return 2;} catch (NullPointerException e) {//捕获return 3;} finally { //必须执行return 4; //返回4}}public static void main(String[] args) {System.out.println(method()); //4}
}

String[] names = new String[3];的意思是开辟了一个数组空间,每个元素都是一个String类,默认指向null。第五行if (names[1].equals(“tom”)) 的时候,name[1]是空指针,name[1].equals一定抛出异常,就会是NullPointerException,所以是return 3,但是这里有finally,还是会return 4.

2

public class TryCatchExercise02 {
}class Exception02 {public static int method() {int i = 1;try {i++; //i = 2String[] names = new String[3];if (names[1].equals("tom")) {//空指针System.out.println(names[1]);} else {names[3] = "hspedu";}return 1;} catch (ArrayIndexOutOfBoundsException e) {return 2;} catch (NullPointerException e) {return ++i; //i = 3} finally {//必须执行return ++i; //i = 4}}public static void main(String[] args) {System.out.println(method());}
}

OUT: 4

3

class ExceptionExe01 {public static int method() {int i = 1;//i = 1try {i++;// i=2String[] names = new String[3];if (names[1].equals("tom")) { //空指针System.out.println(names[1]);} else {names[3] = "hspedu";}return 1;} catch (ArrayIndexOutOfBoundsException e) {return 2;} catch (NullPointerException e) {return ++i;  // i = 3 => 保存临时变量 temp = 3;} finally {++i; //i = 4System.out.println("i=" + i);// i = 4}}public static void main(String[] args) {System.out.println(method());// 3}
}

NullPointerException 异常,catch中 i = 3; 但是先不return, 注意底层会保存在一个临时变量中 temp=3;
然后执行 finally,i=4,输出 i = 4。
然后回到NullPointerException 的catch中,还是会返回临时变量。
输出:
i=4
3

4

题目:如果用户输入的不是一个整数,就提示他反复输入,直到输入一个整数为止。

不会写!!!!ohhhhhhhhnononono/(ㄒoㄒ)/

public class TryCatchExercise04 {public static void main(String[] args) {//如果用户输入的不是一个整数,就提示他反复输入,直到输入一个整数为止//思路//1. 创建Scanner对象//2. 使用无限循环,去接收一个输入//3. 然后将该输入的值,转成一个int//4. 如果在转换时,抛出异常,说明输入的内容不是一个可以转成int的内容//5. 如果没有抛出异常,则break 该循环Scanner scanner = new Scanner(System.in);int num = 0;String inputStr = "";while (true) {System.out.println("请输入一个整数:"); //inputStr = scanner.next();try {num = Integer.parseInt(inputStr); //这里是可能抛出异常break;} catch (NumberFormatException e) {System.out.println("你输入的不是一个整数:");}}System.out.println("你输入的值是=" + num);}
}

异常

1(没有自己写)

a)编写应用程序EcmDef.java,接收命令行的两个参数(整数),计算两数相除。
b)计算两个数相除,要求使用方法cal(int n1, int n2)。
c)对数据格式不正确、缺少命令行参数、除0进行异常处理。

public class Homework01 {public static void main(String[] args) {/*编写应用程序EcmDef.java,接收命令行的两个参数(整数),计算两数相除。
计算两个数相除,要求使用方法 cal(int n1, int n2)
对数据格式不正确(NumberFormatException)、缺少命令行参数(ArrayIndexOutOfBoundsException)、除0 进行异常处理(ArithmeticException)。*/try {//先验证输入的参数的个数是否正确 两个参数if(args.length != 2) {throw new ArrayIndexOutOfBoundsException("参数个数不对");}//先把接收到的参数,转成整数int n1 = Integer.parseInt(args[0]);int n2 = Integer.parseInt(args[1]);double res = cal(n1, n2);//该方法可能抛出ArithmeticExceptionSystem.out.println("计算结果是=" + res);} catch (ArrayIndexOutOfBoundsException e) {System.out.println(e.getMessage());} catch (NumberFormatException e) {System.out.println("参数格式不正确,需要输出整数");} catch (ArithmeticException e) {System.out.println("出现了除0的异常");}}//编写cal方法,就是两个数的商public static double cal(int n1, int n2) {return n1 / n2;}
}

2

判断是否会发生异常?

public class Homework02 {public static void main(String[] args) {//args.length = 0//这里发生的是 ArrayIndexOutOfBoundsExceptionif(args[4].equals("john")){  //可能发生NullPointerExceptionSystem.out.println("AA");}else{System.out.println("BB");}Object o= args[2]; //String->Object ,向上转型Integer i = (Integer)o; //错误,这里一定会发生 ClassCastException}
}

空指针


可能发生NullPointerException
可能发生 ClassCastException

3

判断正误

public class Homework03 {public static void func() {//静态方法try {throw new RuntimeException();} finally {System.out.println("B");}}public static void main(String[] args) {//main方法try {func();System.out.println("A");} catch (Exception e) {System.out.println("C");}System.out.println("D");}}

B
A
C
D

注意: 不会输出A,因为在try代码块中 抛出异常之后是不会执行接下来的代码的。 正确答案是:B C D

4

判断正误

    public static void main(String[] args) {//main方法try {showExce();System.out.println("A");} catch (Exception e) {System.out.println("B");} finally {System.out.println("C");}System.out.println("D");}public static void showExce() throws Exception {throw new Exception();}}

B
C
D

相关文章:

异常 Exception 练习题 (未完成)

异常 Exception 练习题 try-catch异常处理1234 异常1(没有自己写)234 try-catch异常处理 1 class Exception01 {public static int method() {try {String[] names new String[3];//String[]数组if (names[1].equals("tom")) {//NullPointe…...

Linux系统编程:并发与信号总结

并发 并发是指两个或多个同时独立进行的活动。在计算机系统中,并发指的是同一个系统中多个独立活动同时进行,而非依次进行。 并发在计算机系统中的表现: 一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是…...

Jmeter 接口-加密信息发送(一百九十九)

方式1:使用函数助手 比如MD5加密方式: 如图,需要对${user}进行MD5加密 1、打开函数助手,找到MD5,输入需要加密的值 2、将${__MD5(${user},)}放到请求中 3、查看请求,请求成功 方式2:导入jar包…...

微信小程序nodejs+vue+uniapp视力保养眼镜店连锁预约系统

作为一个视力保养连锁预约的网络系统,数据流量是非常大的,所以系统的设计必须满足使用方便,操作灵活的要求。所以在设计视力保养连锁预约系统应达到以下目标: (1)界面要美观友好,检索要快捷简易…...

掌握Vue侦听器(watch)的应用

文章目录 🍁watch 的优缺点🍂Watch 优点🍂Watch 缺点 🍁watch 的用法🍂对象式 watch🍂函数式 watch 🍁代码示例🍂监听基本数据类型🍂监听复杂数据类型(Object…...

SAP-PP:PP顾问管理系统的相关建议

本博客将探讨生产计划领域的控制要点。这将有助于减少仓库库存不准确情况,因为库存不准确会导致实物库存、发货、成本核算和计划方面出现许多效率低下的问题。 在物料主数据关键字段中,必须配置计划交货时间、GR处理时间、内部生产时间、计划交货时间&a…...

Unity资源路径与读取

Unity资源路径有: 1、StreamingAssets:只读,一般用于存放应用程序运行时需要加载的资源文件,可以通过Application.streamingAssetsPath来获取。 2、PersistentDataPath:可读写,一般用于存放应用程序运行时…...

“大+小模型”赋能油气行业高质量发展

近日,中国石油石化科技创新大会暨新技术成果展在北京盛大举行,九章云极DataCanvas公司携油气行业一站式AI综合解决方案重磅亮相,充分展示了公司助推油气行业实现AI规模化应用深厚的AI技术实力和领先的AI应用水准,赢得了行业专家和…...

【win32_004】字符串处理函数

StringCbPrintf 函数 (strsafe.h):格式化字符串 STRSAFEAPI StringCbPrintf([out] STRSAFE_LPSTR pszDest,//目的缓冲区 LPSTR指针或者数组[in] size_t cbDest,//目的缓冲区大小[in] STRSAFE_LPCSTR pszFormat,//格式 例如: TEXT("%d&…...

如果不小心修改了按钮的名字并且忘记了原名字

出现上述情况,可以右边点击转到代码,注释掉问题行,此页的设计界面就恢复了。...

opencv阈值处理

阈值处理 二值化 自适应阈值 OTSU二值化...

html之JS

1、JS的引入 <!-- 内嵌 --><!-- <script>alert(4)</script> --><!-- 外引 --><!-- 内嵌和外引同时有的时候&#xff0c;内嵌被覆盖 --><script src"js/index.js" defer></script>//defer 延迟执行 2、js的变量使用…...

SQL Server的安装和首个库的创建

一、熟悉SQL Server的安装环境&#xff1b; 1.安装Microsoft的数据库管理系统SQL Server 2022 先把SQL Server 2022下载好后进行解压后出现以下界面然后点击基本进行安装 然后会出现以下界面&#xff1a; 一步步按照提示往下走即可&#xff0c;把SQL Server 2022安装完成后再…...

STM32下载程序的五种方法

刚开始学习 STM32 的时候&#xff0c;很多小伙伴满怀热情买好了各种设备&#xff0c;但很快就遇到了第一个拦路虎——如何将写好的代码烧进去这个黑乎乎的芯片&#xff5e; STM32 的烧录方式多样且灵活&#xff0c;可以根据实际需求选择适合的方式来将程序烧录到芯片中。本文将…...

基于springboot + vue大学生竞赛管理系统

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…...

【详解】Spark数据倾斜问题由基础到深入详解-完美理解-费元星

数据倾斜定义&#xff1a;顾名思义&#xff0c;就是大量相似或相同数据聚集在一个块的节点里&#xff0c;导致计算和资源分配不均导致的计算缓慢&#xff08;长尾&#xff09;问题。 数据倾斜原因&#xff1a; count(distinct field) group by NULL 空值 Shuffle (概率最…...

xss漏洞后端进行html消毒

import org.jsoup.Jsoup;public static String sanitizeHtml(String input) {// 使用 Jsoup 消毒 HTMLreturn Jsoup.clean(input, Safelist.relaxed());}public static void main(String[] args) {String userInput "<p><script>alert(1)</script>Safe…...

[论文精读]利用大语言模型对扩散模型进行自我修正

本博客是一篇最新论文的精读&#xff0c;论文为UC伯克利大学相关研究者新近(2023.11.27)在arxiv上上传的《Self-correcting LLM-controlled Diffusion Models》 。 内容提要: 现有的基于扩散的文本到图像生成模型在生成与复杂提示精确对齐的图像时仍然存在困难,尤其是需要数值和…...

CTF特训日记day(4-6)

来复现一下2022QWB决赛的RDP题目 这两天腰疼去了趟医院 题目要求我们攻击XRDP程序&#xff0c;从而达到本地提权的效果。 首先观察XRDP程序的版本信息 rootRDP:/home/rdp/Desktop# xrdp-sesman -version xrdp-sesman 0.9.18The xrdp session managerCopyright (C) 2004-2020…...

【深度学习笔记】09 权重衰减

09 权重衰减 范数和权重衰减利用高维线性回归实现权重衰减初始化模型参数定义 L 2 L_2 L2​范数惩罚定义训练代码实现忽略正则化直接训练使用权重衰减 权重衰减的简洁实现 范数和权重衰减 在训练参数化机器学习模型时&#xff0c;权重衰减&#xff08;decay weight&#xff09…...

华为MateBook D14安装Ubuntu16避坑指南:WiFi/蓝牙/触控板驱动一键搞定

华为MateBook D14安装Ubuntu 16.04驱动优化全攻略 华为MateBook D14作为一款高性价比轻薄本&#xff0c;在安装Ubuntu 16.04时可能会遇到WiFi、蓝牙和触控板驱动不兼容的问题。这主要源于硬件迭代速度远超Linux内核更新周期——你的笔记本搭载了新一代无线网卡和输入设备&#…...

pykg2vec功能mastery:知识图谱嵌入模型的高级配置与优化

pykg2vec功能mastery&#xff1a;知识图谱嵌入模型的高级配置与优化 【免费下载链接】pykg2vec 项目地址: https://gitcode.com/gh_mirrors/py/pykg2vec 问题导入 知识图谱嵌入模型训练中&#xff0c;开发者常面临三大痛点&#xff1a;模型参数调优耗时且效果不佳、不…...

悬浮门厂家次评:专业视角下的悬浮门(悬航门)品牌解析

悬浮门厂家次评是当前高端出入口领域备受关注的话题&#xff0c;随着各类园区、机关单位、学校等场景对安防与形象要求的提升&#xff0c;悬浮门&#xff08;悬航门&#xff09;凭借其平稳运行、静音美观、抗风稳固等特性&#xff0c;逐渐成为大门采购的主流选择。本文基于行业…...

STM32在博物馆环境监测系统中的应用设计

基于STM32的博物馆文物展柜环境监测与控制系统设计1. 项目概述1.1 系统架构本系统采用STM32F103RCT6作为主控制器&#xff0c;构建了一套完整的文物展柜环境监测与控制解决方案。系统通过集成多种传感器和执行机构&#xff0c;实现了对展柜内温度、湿度及光照强度的实时监测与自…...

嵌入式哈希表实现:无malloc线性探测Hash Map

1. 项目概述 hashmap.c 是一个面向嵌入式系统深度优化的纯 C 语言哈希映射&#xff08;Hash Map&#xff09;实现&#xff0c;不依赖标准库&#xff08;如 stdlib.h 、 string.h &#xff09;&#xff0c;完全可移植于裸机环境、RTOS&#xff08;FreeRTOS、Zephyr、RT-Thr…...

从零开始:如何用Python训练一个AI模型(超详细教程)

引言 人工智能&#xff08;AI&#xff09;——一个熟悉又神秘的词汇。我们常听说它可以生成诗歌、编写代码、创作艺术&#xff0c;甚至回答各种问题。然而&#xff0c;当你想亲手实现一个“AI 模型”时&#xff0c;却可能感到无从下手。这篇教程正是为你准备的&#xff0c;将带…...

PLCopen运动控制功能块实战:从单轴控制到多轴联动的5个经典案例解析

PLCopen运动控制功能块实战&#xff1a;从单轴控制到多轴联动的5个经典案例解析 在工业自动化领域&#xff0c;精确的运动控制是实现高效生产的关键。无论是简单的传送带定位&#xff0c;还是复杂的多轴协同作业&#xff0c;PLCopen规范提供的标准化功能块都能为工程师提供强大…...

你还在给每个图片父元素加类名?CSS :has() 让选择器“逆天改命”

你还在给每个图片父元素加类名&#xff1f;CSS :has() 让选择器“逆天改命” 引言 “组长&#xff0c;这个需求我写不了。” “什么需求&#xff1f;” “产品经理说&#xff0c;所有包含图片的卡片&#xff0c;要在卡片上加一个‘带图标识’的边框。但是这些卡片是动态渲染的&…...

大厂速报:小红书期权涨麻,字节年终暴击,AI赛道卷疯了

互联网圈没有岁月静好&#xff0c;只有暗潮涌动——大厂裁员传闻从未断档&#xff0c;AI内卷卷到凌晨三点&#xff0c;打工人一边焦虑KPI&#xff0c;一边蹲守大厂福利&#xff0c;有人靠期权实现财富跃迁&#xff0c;有人被组织调整撞个正着。一、核心福利&#xff5c;打工人狂…...

DeepChat一键启动揭秘:Llama3:8b镜像免配置部署教程(含端口自愈与模型缓存)

DeepChat一键启动揭秘&#xff1a;Llama3:8b镜像免配置部署教程&#xff08;含端口自愈与模型缓存&#xff09; 想体验一个完全私密、响应迅速、且能进行深度对话的AI助手吗&#xff1f;今天&#xff0c;我们将一起揭开DeepChat的神秘面纱。它不是一个需要复杂API密钥和网络调…...