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

6-3 Java异常处理

设有一个整数数组a[], a有10个元素,其值依次为0到9。

从键盘输入整数i的值,求a[i]的倒数。

注意处理各种异常。发生异常后,根据不同的异常,输出警告。

提示:

需要考虑InputMismatchException、ArrayIndexOutOfBoundsException、ArithmeticException等多种异常。 

裁判测试程序样例:

 
import java.util.Scanner;
import java.util.InputMismatchException;
 
public class Main {
    public static void main(String[] args) {
        int[] a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
            
        /* 请在这里填写答案 */
    }
}

输入格式:

先输入一个整数n,表示有n组数据。

此后有n行,每行有一个整数i。

输出格式

正常情况下,输出1/a[i]的值(整数形式)。

如果发生InputMismatchException异常,输出“catch a InputMismatchException”。

如果发生ArrayIndexOutOfBoundsException异常,输出“catch a ArrayIndexOutOfBoundsException”。

如果发生ArithmeticException异常,输出“catch a ArithmeticException”。

输入样例:

4
1
10
0
a

输出样例:

1
catch a ArrayIndexOutOfBoundsException
catch a ArithmeticException
catch a InputMismatchException
Scanner sc = new Scanner(System.in);
int m=0;
        try{
            int n=sc.nextInt();
            m=n;
        }catch(InputMismatchException ex){
            System.out.println("catch a InputMismatchException");
            System.exit(0);//结束程序
        }
        for(int i=0;i<m;i++){
            try{
                int x=sc.nextInt();
                int result=1/a[x];
                System.out.println(result);
            }catch(InputMismatchException ex){
                System.out.println("catch a InputMismatchException");
                sc.nextLine();
            }catch(ArrayIndexOutOfBoundsException ex){
                System.out.println("catch a ArrayIndexOutOfBoundsException");

            }catch(ArithmeticException ex){
                System.out.println("catch a ArithmeticException");
                
            }
        }

 1.Scanner类在进行混合输入的时候,nextInt()\nextDouble()等方法仅读取他们的输入,即直到遇到非数字字符,但不会消耗掉输入缓冲区中的换行符。这个换行符会留在输入缓冲区中,等待下一步操作。现在,如果你紧接着用nextLine()方法,它会立即读取并返回这个换行符。此时需要InputMismatchExcepion异常(通常在使用Scanner类读取用户输入时发生,特别是当程序期望的输入数据类型与用户实际输入的数据类型不匹配时)


http://www.kler.cn/a/314009.html

相关文章:

  • [OpenGL]使用OpenGL实现硬阴影效果
  • Django替换现有用户模型(auth_user)
  • Redis 高并发分布式锁实战
  • 前端面试题23 | 使用require和import引入的资源有什么区别?
  • 程序员会被AI取代吗?
  • 算法(第一周)
  • JVM运行区域介绍
  • 进程间通信的七种方法实战演示!值得收藏!
  • Matlab求解微分方程(解析解与数值解)
  • 利士策分享,华为三折叠手机:重塑未来科技生活的里程碑
  • 【高等代数笔记】线性空间(五-九)
  • module ‘urllib.request‘ has no attribute ‘urlencode‘ 问题解决
  • LeetCode2414题: 最长的字母序连续子字符串的长度(原创)
  • 【数据结构-差分】力扣1589. 所有排列中的最大和
  • 十三、SOA(企业服务总线ESB架构实现)
  • JVM 一个对象是否已经死亡?
  • Invalid Private Key, Not a valid string or uint8Array
  • jQuery国内大厂CDN加速链接
  • 741. 摘樱桃
  • JVM 案例研究与实战经验
  • 硬件工程师笔试面试——滤波器
  • IntelliJ IDEA 2024创建Java项目
  • 红帽 Quay- 配置镜像代理缓存
  • 记一次安装discuz时遇到的错误
  • descrTable常用方法
  • 利士策分享,自我和解:通往赚钱与内心富足的和谐之道