日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA进阶开发之(异常练习题)

發布時間:2024/7/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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进阶开发之(异常练习题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。