JAVA进阶开发之(异常练习题)
生活随笔
收集整理的這篇文章主要介紹了
JAVA进阶开发之(异常练习题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
編寫程序模擬用戶注冊:
1、程序開始執行的時候,提示用戶輸入“用戶名”和“密碼”信息
2、輸入信息之后,后臺JAVA程序模擬用戶注冊
3、注冊時用戶名要求長度在【6-14】之間,小于或者大于都表示異常
?
注意:
完成注冊的方法放到一個單獨的類中
異常類需要自定義
經驗:
引用等于null的這個判斷最好放到所有條件的最前面,因為短路與的執行有可能會造成空指針異常
username == null 不如寫成 null == username
username.equals("abc") 不如寫成 "abc".equals(username)?
?
代碼演示:
創建自定義異常類:
package com.lbj.javase.exceptionTest.homework;/*** @author LBJ* @version V1.0* @Package com.lbj.javase.exceptionTest.homework* @date 2021/3/26 19:03* @Copyright 公司*/ public class IllegalNameException extends Exception{public IllegalNameException() {}public IllegalNameException(String message) {super(message);} }創建用戶類:
package com.lbj.javase.exceptionTest.homework;/***用戶業務類,處理用戶相關的業務:*例如:登錄、注冊等功能*/ public class UserService {/*** 用戶注冊* @param username 用戶名* @param password 密碼* @throws IllegalNameException 當用戶名為null,或者用戶名長度小于6,大于14,會出現該異常*/public void register(String username,String password) throws IllegalNameException {if(null == username || username.length()<6 || username.length()>14){IllegalNameException e=new IllegalNameException("您輸入的用戶名不合法,長度必須在【6-14】位之間");throw e;}System.out.println("您注冊成功,歡迎:"+username);} }創建測試類:
package com.lbj.javase.exceptionTest.homework;/*** @author LBJ* @version V1.0* @Package com.lbj.javase.exceptionTest.homework* @date 2021/3/26 19:54* @Copyright 公司*/ public class Test {public static void main(String[] args) {// 創建對象UserService userService=new UserService(); // try { // userService.register("小明","1234567"); // } catch (Illegal NameException e) { // e.printStackTrace(); // }// 用戶名和密碼不從控制臺接收的時候try {userService.register(null,"1234567");} catch (IllegalNameException e) {System.out.println(e.getMessage());//e.printStackTrace();}} }測試結果:
?
?
源碼分析:
一步一步可以通過看源碼得出e.getMassage的信息到底從哪里來
按住ctrl并單擊進入
?
下一步:
?
下一步:
(message傳給detailMessage)
detailMessage其實是一個實例變量
其實就是將實例化后的異常類中的括號中描述的異常信息,傳遞給detailMassage
然后e.getMessage就是將detailMessage調用出來而已
這就是此異常類的一次實例,其中的源碼意思已經非常清晰
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的JAVA进阶开发之(异常练习题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: scratch 素材_scratch书籍
- 下一篇: jq 通过标签名称获取标签_如何快速通过