Java实验4-1【数组下标越界异常处理】
文章目录
- 前言
- 一、任务介绍
- 1.任务描述
- 2.运行结果
- 3.任务目标
- 4.实现思路
- 二、程序实现
- 1.代码
- 2.实验结果(输出结果)
- 三、总结
前言
一、任务介绍
1.任务描述
编写程序,捕获并处理数组越界异常。
1、定义长度为10的数组,并赋初始值。
2、数组下标从0到10循环遍历数组,输出数组元素的值。
3、使用异常处理语句检测上述输出语句,控制程序正常退出
(1)然后在捕获处理时调用toString方法,实现以下运行效果。
(2)当满足产生异常对象条件时,结合throw抛出一个具体的由异常信息构建的ArrayIndexOutOfBoundsException异常对象。
然后在捕获处理时调用toString方法。
实现以下运行效果
2.运行结果
如上所示
3.任务目标
学会利用try…catch…finally处理异常,控制程序正常退出。
掌握调用异常类的toString、getMessage、printStackTrace
相关方法输出异常信息。
掌握用异常信息组合成字符串再构造具体异常对象,然后结合throw将异常对象抛出的方法。
4.实现思路
1、数组越界异常(IndexOutOfBoundsException)是运行时异常,程序员是可以不处理的,虚拟机可以处理,但处理的结果是非正常退出。故本题希望通过程序员自己处理,以便用来控制程序正常退出。
2、怎么处理呢?在整个输出数组的过程中,每一次访问数组元素,如果数组下标越界都可能出问题。我们想要的结果是只要第一次越界就报相应的异常信息,结束数组的整个访问。那就应该把整个for循环放到try中,结合catch进行捕捉处理。
3、如果只是要控制正常退出,那完全不用自定义异常类,因为Java里本身就有ArrayIndexOutOfBoundsException。
4、要获得一个具体的ArrayIndexOutOfBoundsException异常类对象,就需要调用ArrayIndexOutOfBoundsException异常类的有参构造方法,该方法接收一个字符串作为参数,那么我们就可以在发生异常时将引发异常的当前下标i和当前数组的长度值组合成一个串去构造就行。
二、程序实现
1.代码
public class Main {public static void main(String[] args) {int[] a=new int[10] ;int i;for(i=0; i<10; i++)a[i] =i;try{for(i=0; i<=10; i++) {if(i>=a.length){throw new ArrayIndexOutOfBoundsException("当前要访问下标为:"+i+",数组长度为"+a.length+",发生数组越界异常");}else{System.out.print(a[i]+" ");}}}catch(ArrayIndexOutOfBoundsException e){System.out.println();System.out.println(e.toString());}finally {System.out.println("由程序员负责处理越界异常");
2.实验结果(输出结果)
三、总结
- 如果在try里在数组遍历后写throw无法正确达到实验要求结果输出异常,因为异常后面的语句不会再执行
- 解决方法:加上判断语句,如果判断为异常直接抛出,如果不是就正常输出
Java实验4-1【数组下标越界异常处理】相关推荐
- 5.java.lang.IndexOutOfBoundsException(数组下标越界异常)
5.java.lang.IndexOutOfBoundsException(数组下标越界异常) 参考文章: (1)5.java.lang.IndexOutOfBoundsException(数组下标越 ...
- java中怎么判断数组下标越界_初学java遇到疑惑,数组下标越界,求解答!
一个学生考试成绩录入程序的模块化设计,在编译时出现了数组下标越界 错误提示:Exception in thread "main" java.lang.ArrayIndexOutOf ...
- Java实验——设计一个数组模型,用于存储体育项目成绩男生体育项目有足球、长跑和铅球,女生体育项目有跳舞、体操、游泳。设计排序算法,将变量a、b、c中的数值按大小顺利进行互换(从大到小排列)。
设计一个数组模型,用于存储体育项目成绩:男生体育项目有足球.长跑和铅球,女生体育项目有跳舞.体操.游泳. import java.util.Scanner;public class DataArray ...
- java基础5 (一维)数组和二维数组
本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等)) 二维数组(二维数组的遍历.排序.查找.定义 ...
- [Java实验 5] 异常处理
实验题目 一. 实验目的 1.了解 Java 中的异常类. 2.学会使用异常模式 try-catch-finally. 3.掌握自定义异常处理. 二.实验环境 1.硬件环境:个人 PC 机 2.软件环 ...
- java实验四结果,java实验四异常处理.doc
java实验四异常处理.doc 实验四异常处理一.实验目的1.掌握异常的概念和Java异常处理机制.2.掌握异常的定义.抛出和捕捉处理.二.实验内容与要求1.仔细读下面的JAVA语言源程序,自己给出程 ...
- java数组使用实验报告_JAVA数组与类的定义-java实验报告
JAVA数组与类的定义-java实验报告 JAVA数组与类的定义-java实验报告 .实验目的与要求 1. 熟悉Java类.对象和方法的一般操作练习等. 2. 熟悉数组等的定义和使用. 二.实验内容及 ...
- java数组下标越界的问题
java数组下标越界的问题: 最近一直出现这类问题:数组下标越界 举例说明: Exception in thread "main" java.lang.ArrayIndexOutO ...
- java二维数组杨辉三角_实验----Java的二维数组的应用及杨辉三角的编写
(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...
最新文章
- LeetCode 316. Remove Duplicate Letters--贪心--Java,C++,Python解法
- html css 让元素居中显示,html – CSS:如何在居中元素周围对齐元素?
- [SCOI2010]股票交易
- SQLServer 2005删除无主键表中的重复项
- 以太网实习_物联网通信硬件入门项目—光纤收发器(1)——实习内容,适用范围,技术及收益...
- jvisualvm安装Visual GC插件
- Java之ThreadLocal
- Qt 第一步 HelloWorld 的第一个程序
- python现在时间减去过去时间等于20分钟怎么写_获取当前时间减去10分钟的话SQL语句怎么写...
- c++怎么可以在二进制文件中读取带string的数据_文件处理 | csv文件读写
- Linux 下安装JDK1.8
- Protocol Buffer 序列化原理大揭秘
- JDK中的SPI和Spring中的SPI
- 小象机器学习(邹博老师)学习笔记
- 液晶显示器背光测试软件,液晶屏背光灯驱动板故障检测方法_维修技术
- 关于短信猫死机的问题程序要如何解决
- 让Excel窗口保持在所有窗口前面
- 苹果cms后台登录验证码错误或显示不出来解决方法
- 雅虎邮箱为什么停止服务_雅虎的发展项目将变成什么样?
- chm sharp安卓版_CHM 阅读器
热门文章
- python 获取屏幕颜色_Python3 获取手机屏幕指定坐标点的 RGBA 和 16 进制颜色
- SI512国产13.56MHz低功耗NFC前端芯片替代PN532/PN512
- Numpy之logspace
- 【Vue 实战项目】后台管理系统登录页详解附源码
- Android Animator(Android动画)
- [Android Studio]开发APP应用出现软件程序打开闪退的排错
- SEO优化:自建站图片优化攻略
- Android 5.1.1 源码目录结构说明
- 中小型项目请求限流设计
- 怎么做网线,网线水晶头接法和线序(图文详解)