ヤマムギ

growing hard days.

*

Java SE 7 Silver対策勉強をしながらメモ 2015/2/6

      2015/03/29

本日は例外の続き。
これで参考書の章立てはとりあえず終了!!
明日からは模試と練習問題をやりまくるべし!!

いつものごとくマークダウンで記載したのでそのままJetpack Markdownにお任せでアップします。

コンパイラによってチェックされる = 例外処理が必須

  • RuntimeExceptionとそのサブクラスを除くExceptionクラスとそのサブクラスが、コンパイラによってチェックされる例外(例外処理が必須)

主なRuntimeExceptionのサブクラス(例外処理任意)

  • AirthmeticException – ゼロ割
  • ArrayIndexOutOfBoundsException – 配列範囲外
  • ClassCastException – クラスキャスト
  • NullPointerException – null参照変数のメソッド実行
  • NumberFormatException – 文字列を整数変換
  • IllegalArgumentException – 不正な引数

RuntimeExceptionとサブクラスを除いた主なExceptionのサブクラス(例外処理必須)

  • ClassNotFoundException – クラスをロードできない
  • FileNotFoundException – 対象ファイルがない
  • IOException – 入出力関連

複数キャッチのExceptionクラス継承関係に注意!!!

  • 複数のcatchブロックを定義するときは下位にサブクラスを書くとコンパイルエラー
  • 上位がスーパークラスだとそこでキャッチして到達出来ないコードになるから

[java]
public class Test{
public static void main(String[] args){
try{
method();
}catch(Exception e){
System.out.println(e);
}catch(RuntimeException e){
System.out.println(e);
}
}
static void method(){
int[] array = new int[5];
array[5] = 10;
getRuntimeException();
}
static void getRuntimeException(){
throw new RuntimeException(“Runtime Exception”);
}
}
[/java]

Exceptionクラスのコンパイルエラーの例としてはいささか強引だが

  • これはコンパイルエラー

[java]
public class Main{
public static void main(String[] args){
method1();
}
private static void method1(){
method2();
}
private static void method2(){
throw new Exception();//ここでコンパイルエラー
}
}
[/java]

  • コンパイルするための例1

[java]
public class Main{
public static void main(String[] args){
method1();
}
private static void method1(){
method2();
}
private static void method2(){
try{
throw new Exception();
}catch(Exception e){

}
}
[/java]

  • コンパイルするための例2

[java]
public class Main{
public static void main(String[] args) throws Exception{
method1();
}
private static void method1() throws Exception{
method2();
}
private static void method2() throws Exception{
throw new Exception();
}
}
[/java]

throws指定されたメソッドの呼出し

[java]
class MethodClass{
void method() throws Exception{
System.out.println(“MethodClass”);
}
}
public class MainClass{
public static void main(String[] args){
MethodClass mc = new MethodClass();
mc.method();
}
}
[/java]

  • method()にthrows Exceptionを指定しているためコンパイルエラー
  • 9行目をtry~catchで例外処理を定義するか、mainメソッドにthrows Exceptionを指定するとコンパイル出来る

きれいごとでも理想的な解答を選択した方が良い!!

  • APIドキュメントを読むなど!!

2つ選択するとかちゃんと読む!!

  • 問題が何を求めているかを落ち着いてちゃんと読む!!

最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - Java, study , ,

ad

ad

  関連記事

AWS Expert Online at JAWS-UG首都圏エリアに参加して「Amazon EC2 スポットインスタンス再入門」を聞いてきた

AWS Expert Onlineという勉強会がありまして、AWS ソリューショ …

LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (3)Lambdaからkintoneへレコードを登録する

作る部分 Lambdaからkintoneへレコードを登録する部分を作成します。 …

LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (2)LambdaからSlackへ通知する2

作る部分 この部分のLambdaを作成します。 手順1でSlackのIncomi …

LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (4)Step Functionsで複数のLambdaを実行制御する

作る部分 Step Functionsでこれまで作ったLambdaの実行制御をし …

LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (1)LambdaからSlackへ通知する1

作る部分 SlackのWebURLを確認する Slackでチームを作成してbot …

MonotaRO TechTalk #4「データ分析」に行ってきました

本日の一杯目。MonotaRO TechTalk #4「データ分析」もちろん呑み …

Developers Summit 2018 「NRIの働き方改革 – 開発スタイルから文化まで変えた軌跡 -」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

Twilio APIでOpenWeatherMap APIで取得した天気情報を毎朝モーニングコールする

OpenWeatherMap APIのJsonから取得した気温と天気の情報を、T …

Java SE 7 Gold対策勉強をしながらメモ 2015/9/1

さて、9/26の試験を目指して久しぶりに試験勉強を始めます。 今月は非常に忙しい …

LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (5) LINEからの投稿へ返信と登録処理

作る部分 LINEからのメッセージを受けて各APIより返信し、StepFunct …