com.itheima.demo04.MyExceptionパッケージ変更のため、
インポートjava.util.Scanner;
/ *
条件:プロ、そのユーザー名はすでに登録されている:我々は、ユーザー名がすでに存在する場合は、例外がスローされ、ヒントは、登録操作をシミュレートします。
分析:
1.配列保存された登録ユーザ名(データベース)の使用
2.スキャナキャプチャ登録ユーザ名(フロントページ)ユーザによる入力
方法を定義する3は、ユーザ入力に登録されているユーザ名が決定されます
トラバーサルストレージには、ユーザー名の配列を登録している、アクセス各ユーザー名
のユーザー入力の取得したユーザ名とユーザー名を使用しては比較的にある
真:
、ユーザー名は既に存在していRegisterExceptionが異常スロー、ユーザ名がすでに登録されていることを、「プロユーザーに知らせます「;
偽:
比較を通過し続ける
サイクルが終わった場合は、まだ重複したユーザー名を検索し、かつを促す」;」正常に登録おめでとう!の
* /
パブリッククラスDemo02RegisterException {
既に登録済みのユーザー名を保存するための配列を// 1.使用(データベース)
静的な文字列[] = {ユーザー名のは、「ジョー・スミス」であり、「ジョン・ドウ」、
静的な無効メインパブリック(文字列[]引数){
// 2スキャナは、登録ユーザ名(フロントページ)は、ユーザによる入力を使用して取得した。
スキャナースキャナー新しい新しいSC =(System.in);
のSystem.out.println(「入力自分のユーザー名を登録するには:「);
文字列名= sc.next();
CheckUserName(ユーザー名);
}
// 3は、メソッドを定義し、ユーザー名は裁判官にユーザーの入力を記録した。
公共の静的な無効CheckUserName(文字列をユーザ名){
//ストレージアレイを横断すると、登録ユーザ名、各ユーザ名にアクセスされている
ため(文字列名:ユーザ名){
//ユーザが入力したユーザ名とユーザ名を比較するために使用し得る
場合(name.equals(ユーザ名) ){
// trueに:ユーザー名がすでに存在している、例外がRegisterExceptionスローされる「プロ、ユーザー名が登録されている」のユーザーに通知;
スロー新しい新RegisterException(「プロ、ユーザ名がすでに登録されている」); //は、実行をスローします異常、治療せずに、JVMの処理に、割り込み処理
}
}
サイクルが終わって、まだ、ユーザープロンプトを重複したユーザー名を検索した場合は、//、「おめでとう、登録が成功する!」;
System.out.println( "正常に登録おめでとう!");
}
}
com.itheima.demo04.MyExceptionパッケージ変更のため、
インポートjava.util.Scanner;
/ *
条件:プロ、そのユーザー名はすでに登録されている:我々は、ユーザー名がすでに存在する場合は、例外がスローされ、ヒントは、登録操作をシミュレートします。
分析:
1.配列保存された登録ユーザ名(データベース)の使用
2.スキャナキャプチャ登録ユーザ名(フロントページ)ユーザによる入力
方法を定義する3は、ユーザ入力に登録されているユーザ名が決定されます
トラバーサルストレージには、ユーザー名の配列を登録している、アクセス各ユーザー名
のユーザー入力の取得したユーザ名とユーザー名を使用しては比較的にある
真:
、ユーザー名は既に存在していRegisterExceptionが異常スロー、ユーザ名がすでに登録されていることを、「プロユーザーに知らせます「;
偽:
比較を通過し続ける
サイクルが終わった場合は、まだ重複したユーザー名を検索し、かつを促す」;」正常に登録おめでとう!の
* /
パブリッククラスDemo01RegisterException {
既に登録済みのユーザー名を保存するための配列を// 1.使用(データベース)
静的な文字列[] = {ユーザー名のは、「ジョー・スミス」であり、「ジョン・ドウ」、
静的な無効メインパブリック(文字列[] args)を/ *スローRegisterException * / {
//取得するユーザー入力、登録ユーザー名を(フロントページ)を使用して、スキャナ2。
スキャナスキャナ新新SC =(System.in);
のSystem.out .println(「登録したいユーザー名を入力してください:」);
文字列名= sc.next();
CheckUserName(ユーザー名);
}
// 3には、ユーザー名は裁判官へのユーザー入力を登録し、メソッドを定義します。
静的ボイドCheckUserName公開(文字列名)/ *スローRegisterException * / {
//登録ユーザ名、各ユーザ名にアクセスされたストレージアレイを横切る
(ストリング名:ユーザ名)用{
//取得したユーザ名とユーザ入力を使用ユーザ名を比較
(name.equals(ユーザー名))のIF {
trueに//:ユーザー名は既に存在して、例外がスローされRegisterException「プロ、ユーザ名がすでに登録されている」のユーザに通知します。
試し{
(「ユーザー名が既に登録されているプロ」)新しいRegisterExceptionを投げる;
}キャッチ(RegisterException E){
e.printStackTrace(); リターン;プロセスの//終わり、他のコンテンツの早期終了の方法は実行されません
}
}
}
//サイクルが終わって、まだ、ユーザープロンプトを重複したユーザー名を検索した場合は、「おめでとう、登録が成功した!」;
System.out.printlnは(「正常に登録おめでとう!」);
}
}
カスタム例外クラス:
用com.itheima.demo04.MyException Package変更;
/ *
カスタム例外クラス:
あなたには、いくつかの例外クラスを定義する必要がありますので、提供ExceptionクラスのJava、私たちが使用するのに十分な、
フォーマットを:
パブリッククラスXXXExcepiton例外を拡張| RuntimeExceptionは、{
空の引数のコンストラクタの追加
アドオンを情報を除いて構成する方法
}
注:
1.カスタム例外クラス一般例外で終了している、そのような説明は例外クラスである
2.カスタム例外クラス必須継承例外またはのRuntimeException
継承例外:そうカスタム例外クラスは、内部メソッドが例外コンパイルをスローした場合、コンパイルは、あなたが例外を処理しなければならないことは例外である、またはスロー、またはしてみてください...キャッチ
処理をせずに、実行時例外クラスが例外を定義しているので、から:継承されたのRuntimeExceptionを、仮想マシンの処理に(割り込み処理)
* /
パブリッククラスRegisterException延び/ *例外* /のRuntimeException {
//の空のコンストラクタパラメータを追加
)(公衆RegisterExceptionを{
スーパー();
}
/ *
とコンストラクタの例外情報を追加
ビューのソースコードのすべての例外クラスは、とのコンストラクタ例外情報を持つことになります見つけ
内部メソッドは、コンストラクタの例外情報を親クラスを呼び出す
親クラスは、この例外の情報を処理するためにそうすることを
* /
パブリックRegisterException(文字メッセージ){
スーパー(メッセージ);
}
}