public class LoginProgram {
public static void main(String[] args) {
try {
loginUser("exampleUser", "wrongPassword");
} catch (InvalidCredentialsException e) {
System.out.println("ãƒã‚°ã‚¤ãƒ³ã‚¨ãƒ©ãƒ¼: " + e.getMessage());
}
}
static void loginUser(String username, String password) throws InvalidCredentialsException {
// ã“ã“ã§å®Ÿéš›ã®èªè¨¼å‡¦ç†ãŒè¡Œã‚ã‚Œã‚‹ã¨æƒ³å®š
// ä»®ã®èªè¨¼å‡¦ç†
String validUsername = "exampleUser";
String validPassword = "correctPassword";
if (username.equals(validUsername) && password.equals(validPassword)) {
System.out.println("ãƒã‚°ã‚¤ãƒ³æˆåŠŸï¼");
} else {
throw new InvalidCredentialsException("ユーザーåã¾ãŸã¯ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ãŒæ£ã—ãã‚りã¾ã›ã‚“。");
}
}
}
class InvalidCredentialsException extends Exception {
public InvalidCredentialsException(String message) {
super(message);
}
}
ã“ã®ä¾‹ã§ã¯ã€loginUser メソッドã§ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¨ãƒ‘スワードã®èªè¨¼ãŒè¡Œã‚れã¦ã„ã¾ã™ã€‚ã‚‚ã—èªè¨¼ãŒå¤±æ•—ã—ãŸå ´åˆã€InvalidCredentialsException をスãƒãƒ¼ã—ã¦ã„ã¾ã™ã€‚main メソッドã§ã¯ã€ã“ã®ä¾‹å¤–ã‚’ã‚ャッãƒã—ã¦ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã—ã¦ã„ã¾ã™ã€‚
ユーザーèªè¨¼ã¨ä¾‹å¤–処ç†
ユーザーèªè¨¼ã¨ä¾‹å¤–処ç†ã‚’組ã¿åˆã‚ã›ãŸãƒ—ãƒã‚°ãƒ©ãƒ ã§ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æä¾›ã—ãŸæƒ…å ±ï¼ˆä¾‹: ユーザーåã¨ãƒ‘スワード)を検証ã—ã¦ã€èªè¨¼ãŒå¤±æ•—ã—ãŸå ´åˆã«ç‹¬è‡ªã®ä¾‹å¤–をスãƒãƒ¼ã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚以下ã¯ãã®æ‰‹é †ã‚’解説ã—ã¾ã™ã€‚
- ユーザーèªè¨¼å‡¦ç†ã®å®Ÿè£…: ユーザーèªè¨¼å‡¦ç†ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæä¾›ã—ãŸæƒ…å ±ï¼ˆãƒ¦ãƒ¼ã‚¶ãƒ¼åã¨ãƒ‘スワード)を検証ã™ã‚‹ãƒ—ãƒã‚»ã‚¹ã§ã™ã€‚ã“れã¯é€šå¸¸ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚„外部ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚·ã‚¹ãƒ†ãƒ ã¨ã®é€£æºãŒå«ã¾ã‚Œã¾ã™ã€‚æ£ã—ã„æƒ…å ±ãŒæä¾›ã•れãŸå ´åˆã¯ãƒã‚°ã‚¤ãƒ³æˆåŠŸã¨ãªã‚Šã€èªè¨¼ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã«ä¾‹å¤–をスãƒãƒ¼ã—ã¾ã™ã€‚
- 独自ã®ä¾‹å¤–クラスã®ä½œæˆ: èªè¨¼ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã€é€šå¸¸ã¯æ¨™æº–ã®
Exceptionクラスを拡張ã—ãŸç‹¬è‡ªã®ä¾‹å¤–クラスを作æˆã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ç‰¹å®šã®ã‚¨ãƒ©ãƒ¼çжæ³ã‚’示ã™ãŸã‚ã®ã‚«ã‚¹ã‚¿ãƒ ã®ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚„エラーコードをæä¾›ã§ãã¾ã™ã€‚ - 例外ã®ã‚¹ãƒãƒ¼: èªè¨¼ã‚¨ãƒ©ãƒ¼ãŒæ¤œå‡ºã•れãŸå ´åˆã€ç‹¬è‡ªã®ä¾‹å¤–をスãƒãƒ¼ã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€å‘¼ã³å‡ºã—å…ƒã§ä¾‹å¤–ã‚’ã‚ャッãƒã—ã¦ã‚¨ãƒ©ãƒ¼å‡¦ç†ã‚’行ã†ã“ã¨ãŒã§ãã¾ã™ã€‚
- 呼ã³å‡ºã—å…ƒã§ã®ä¾‹å¤–ã®å‡¦ç†: 呼ã³å‡ºã—å…ƒã§ã¯ã€èªè¨¼ãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã³å‡ºã™éš›ã«ä¾‹å¤–ã‚’ã‚ャッãƒã—ã€ã‚¨ãƒ©ãƒ¼ã«å¯¾ã™ã‚‹é©åˆ‡ãªå‡¦ç†ã‚’行ã„ã¾ã™ã€‚ã“れã«ã¯ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®è¡¨ç¤ºã€ãƒã‚°ã®è¨˜éŒ²ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å¯¾ã™ã‚‹ã‚¨ãƒ©ãƒ¼é€šçŸ¥ãªã©ãŒå«ã¾ã‚Œã¾ã™ã€‚
以下ã¯ã€å…ˆç¨‹ã®ä¾‹ã‚’より詳細ã«è§£èª¬ã—ãŸã‚‚ã®ã§ã™ã€‚
// 独自ã®ä¾‹å¤–クラス
class InvalidCredentialsException extends Exception {
public InvalidCredentialsException(String message) {
super(message);
}
}
public class AuthenticationExample {
// ユーザーèªè¨¼å‡¦ç†
static void authenticateUser(String username, String password) throws InvalidCredentialsException {
// 通常ã¯ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãªã©ã¨ç…§åˆã—ã€èªè¨¼å‡¦ç†ã‚’行ã†
String validUsername = "exampleUser";
String validPassword = "correctPassword";
if (username.equals(validUsername) && password.equals(validPassword)) {
System.out.println("ãƒã‚°ã‚¤ãƒ³æˆåŠŸï¼");
} else {
// èªè¨¼ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã€ç‹¬è‡ªã®ä¾‹å¤–をスãƒãƒ¼
throw new InvalidCredentialsException("ユーザーåã¾ãŸã¯ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ãŒæ£ã—ãã‚りã¾ã›ã‚“。");
}
}
public static void main(String[] args) {
try {
// ユーザーåã¨ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ãŒæ£ã—ããªã„å ´åˆã«ä¾‹å¤–ãŒã‚¹ãƒãƒ¼ã•れる
authenticateUser("exampleUser", "wrongPassword");
} catch (InvalidCredentialsException e) {
// 例外ãŒã‚ャッãƒã•れãŸå ´åˆã®å‡¦ç†
System.out.println("ãƒã‚°ã‚¤ãƒ³ã‚¨ãƒ©ãƒ¼: " + e.getMessage());
}
}
}
ã“ã®ä¾‹ã§ã¯ã€InvalidCredentialsException ãŒèªè¨¼ã‚¨ãƒ©ãƒ¼æ™‚ã«ã‚¹ãƒãƒ¼ã•れã€main メソッドã§ã‚ャッãƒã•れã¦ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒè¡¨ç¤ºã•れる仕組ã¿ã«ãªã£ã¦ã„ã¾ã™ã€‚
ユーザーèªè¨¼ã¨ä¾‹å¤–処ç†ã¯ã€ã‚»ã‚ュリティやエラーãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ã«ãŠã„ã¦éžå¸¸ã«é‡è¦ãªè¦ç´ ã§ã™ã€‚é©åˆ‡ãªãƒ¦ãƒ¼ã‚¶ãƒ¼èªè¨¼ã¯ã€æ©Ÿå¯†æƒ…å ±ã‚„ã‚·ã‚¹ãƒ†ãƒ ã¸ã®ä¸æ£ã‚¢ã‚¯ã‚»ã‚¹ã‚’防ããŸã‚ã«æ¬ ã‹ã›ã¾ã›ã‚“。一方ã§ã€ä¾‹å¤–処ç†ã¯ã‚¢ãƒ—リケーションãŒäºˆæœŸã›ã¬çжæ³ã«å¯¾å‡¦ã™ã‚‹æ‰‹æ®µã¨ã—ã¦é‡è¦ã§ã™ã€‚
ã“れらを組ã¿åˆã‚ã›ã‚‹ã“ã¨ã§ã€å®‰å…¨ã‹ã¤é ‘å¥ãªã‚¢ãƒ—リケーションを構築ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚例外をé©åˆ‡ã«å‡¦ç†ã™ã‚‹ã“ã¨ã§ã€ã‚¢ãƒ—リケーションã¯ç•°å¸¸ãªçжæ³ã«å¯¾ã—ã¦æŸ”軟ã«å¯¾å¿œã§ãã€ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¯ã‚ã‹ã‚Šã‚„ã™ã„エラーメッセージをæä¾›ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
最もé‡è¦ãªã®ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¨ã£ã¦ä½¿ã„ã‚„ã™ãã€åŒæ™‚ã«ã‚»ã‚ュアãªã‚·ã‚¹ãƒ†ãƒ を構築ã™ã‚‹ã“ã¨ã§ã™ã€‚ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ£ç¢ºã‹ã¤å®‰å…¨ã«èªè¨¼ã§ãるよã†ã«ã—ã€åŒæ™‚ã«ã‚¢ãƒ—リケーションãŒã‚¨ãƒ©ãƒ¼ã«å¼·ã対処ã§ãるよã†ã«ä¾‹å¤–処ç†ã‚’工夫ã™ã‚‹ã“ã¨ãŒæ±‚ã‚られã¾ã™ã€‚
ユーザーèªè¨¼ã¨ä¾‹å¤–処ç†ã¯ã€ã‚½ãƒ•トウェアã®å“質å‘上ã«å‘ã‘ãŸåŸºæœ¬çš„ãªè¦ç´ ã§ã‚りã€ã“れらを組ã¿åˆã‚ã›ã¦é©åˆ‡ã«å–り扱ã†ã“ã¨ã§ã€ä¿¡é ¼æ€§ã®é«˜ã„アプリケーションを構築ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
「019 例外ã¨ä¾‹å¤–処ç†ã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント