Java基礎 第三節 第二十課
概述
為什麼需要自定義異常類
我們說了 Java 中不同的異常類, 分別表示著某一種具體的異常情況. 那麼在開發中總是有些異常情況是 SUN 沒有定義好的, 此時我們根據自己業務的異常情況來定義異常類. 例如年齡負數問題, 考試成績負數問題等等.
什麼是自定義異常類
在開發中根據自己業務的異常情況來定義異常類.
Ex:
自定義一個業務邏輯異常: RegisterException. 一個註冊異常類.
異常類如何定義
- 自定義一個編譯期異常: 自定義類並繼承於
java.lang.Exception
- 自定義一個執行時期的異常類: 自定義類並繼承於
java.lang.RuntimeException
自定義異常的練習
要求: 我們模擬註冊操作, 如果使用者名稱已存在, 則丟擲異常並提示: 親, 該使用者名稱已經註冊.
首先定義一個登陸異常 RegisterException:
// 業務邏輯異常
public class RegisterException extends Exception{
// 空參構造
public RegisterException() {
}
/**
* 構造
* @param message 表示異常提示
*/
public RegisterException(String message) {
super(message);
}
}
模擬登陸操作, 使用陣列模擬資料庫中儲存的資料, 並提供當前註冊賬號存在方法用於判斷.
public class Test46 {
// 模擬資料庫中已存在賬號
private static String[] names = {"bill","hill","jill"};
public static void main(String[] args) {
// 呼叫方法
try{
// 可能出現異常的程式碼
checkUsername("nill");
System.out.println("註冊成功"); // 如果沒有異常就是註冊成功
}catch(RegisterException e) {
// 處理異常
e.printStackTrace();
}
}
// 判斷當前註冊賬號是否存在
// 因為是編譯期異常, 又想呼叫者去處理所以宣告該異常
public static boolean checkUsername(String uname) throws RegisterException{
for (String name : names) {
if(name.equals(uname)){ // 如果名字在這裡面 就丟擲登陸異常
throw new RegisterException("親" + name + "已經被註冊了!");
}
}
return true;
}
}
相關文章
- Java基礎 第二節 第三課Java
- Java基礎 第三節 第五課Java
- Java基礎 第三節 第十課Java
- Java基礎 第三節 第七課Java
- Java基礎 第三節 第六課Java
- Java基礎 第三節 第一課Java
- Java基礎 第二節 第二十一課Java
- Java基礎 第一節 第八課Java
- Java基礎 第二節 第十課Java
- 第二十八節:Java基礎-進階繼承,抽象類,介面Java繼承抽象
- android基礎學習-java篇day7-step3-第三節:java字串AndroidJava字串
- java基礎第二季最後一節課練習Java
- 老王的JAVA基礎課:第5課 物件導向Java物件
- Java基礎程式碼季節判斷季節1Java
- Python基礎(二十):物件導向“類”第三課——類成員Python物件
- 初等數學O 集合論基礎 第三節 序關係
- 開課吧Java課堂:小應用程式基礎是什麼Java
- HarmonyOS 第一課:基礎課程
- Java基礎回顧(牛客網專案課程)Java
- 第一章-JAVA基礎-課後總結和課後習題Java
- java基礎一些演算法(第三篇)Java演算法
- 圖觀™應用編輯器 零基礎入門課(第三講)
- 第65節:Java後端的學習之Spring基礎Java後端Spring
- 零基礎學Java第四節(字串相關類)Java字串
- 零基礎學Java第六節(物件導向二)Java物件
- Java基礎鞏固第三天(泛型、ArrayList、LinkList、HashSet)Java泛型
- Java基礎-語法基礎Java
- JAVA入門第三季第一章第九節課後練習題!Java
- 【UI】第三週 手繪基礎-CSDN就業班-專題視訊課程UI就業
- JAVA 基礎Java
- java基礎Java
- [Java基礎]Java
- java EE開發之Servlet第十一課:反射基礎三JavaServlet反射
- Java 基礎02Java程式設計基礎Java程式設計
- android基礎學習-java篇day8-step3-第四節:java集合AndroidJava
- Java基礎-物件導向基礎Java物件
- JS基礎細節知識JS
- Python——基礎知識細節Python