Educodeer--JAVA面向对象--java中的异常

在这里插入图片描述

第 1 关:Java 中的异常处理机制

1.在 Java 中,源文件 Test.java 中包含如下代码段,则程序编译运行结果是( )

public class HelloWorld{
public static void main(String[] args){
System.out.print(“HelloWorld!”);
}
}
A、输出:HelloWorld!

B、编译出错,提示“公有类HelloWorld必须在HelloWorld.java文件中定义”

C、运行正常,但没有输出内容

D、运行时出现异常
答案:b

2.下列关于检测性异常和非检测性异常正确的是( )

A、IOException及其子类(FileNotFoundException等),都属于检测型异常
B、检测型异常不需要程序员来处理
C、运行时异常可以处理,也可以不处理,是可选的
D、错误也属于异常的一种
E、所有的异常类是从 java.lang.Exception 类继承的子类
答案:ace

3.关于下列代码,说法正确的是()

public static void main(String[] args){
int num1 = 10;
int num2 = 0;
System.out.println(num1/num2);
}
A、输出0

B、编译报错,提示除数不能为0

C、输出无穷大

D、运行时报错,提示除数不能为0
答案:d

第二关 捕获异常

编程要求

请仔细阅读右侧代码,根据方法内的提示,在 Begin - End 区域内进行代码补充,具体任务如下:

  • 编辑器中的代码运行时可能会有异常,请利用本关知识处理该异常。
测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

输入:

4

2

输出:

2

输入:

4

0

输出:

除数不能为0

提示:捕获异常需要用特定的类,下表总结了常用的异常类:
答案如下

package step2;

import java.util.Scanner;

public class Task {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		/********* Begin *********/
		try{
			System.out.println(num1/num2);
		}catch(ArithmeticException e){
			System.out.print("除数不能为0");
		}
		
		
		
		
		/********* End *********/
	}

}

第 3 关:抛出异常

编程要求

请仔细阅读右侧代码,根据方法内的提示,在 Begin - End 区域内进行代码补充,具体任务如下:

  • 异常的抛出和处理。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

预期输出:该文件不存在
答案如下

package step3;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Task {
	/********* Begin *********/
	//请在合适的部位添加代码
	public static void main(String[] args)throws FileNotFoundException      {	
		test();
	}
	public static void test() throws FileNotFoundException           {
		File file = new File("abc");
		if(!file.exists()){		//判断文件是否存在
			//文件不存在,则 抛出 文件不存在异常
			throw new FileNotFoundException("该文件不存在");
		}else{
			FileInputStream fs = new FileInputStream(file);
		}
	}
	/********* End *********/
}

第 4 关:自定义异常

编程要求

请仔细阅读右侧代码,根据方法内的提示,在 Begin - End 区域内进行代码补充,具体任务如下:

  • 定义一个自定义异常,判断用户名是否小于三位,如果用户名小于三位,就抛出一个自定义异常。
测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

输入:

admin

输出:

用户名格式正确

输入:

ab

输出:

Exception in thread "main" step4.MyException: 用户名小于三位Exception at step4.Task.main(Task.java:13)

注意:因为抛出异常时会显示行号,请在 13 行抛出异常,否则评测可能不通过。
答案如下

package step4;

import java.util.Scanner;

public class Task {
/********* Begin *********/
public static void main(String[] args) throws MyException {
Scanner sc = new Scanner(System.in);
String username = sc.next();
if(username.length()❤️){
throw new MyException(“用户名小于三位Exception”);

	}
	System.out.println("用户名格式正确");
}

}

class MyException extends Exception{
public MyException(){
}
public MyException(String msg)
{
super(msg);
}
}

/********* End *********/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值