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 *********/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章