不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『Java入門編10:例外処理を理解しよう (全13回)』を受講してみた

2021-03-29 22:59:38 | paiza

『Java入門編10:例外処理を理解しよう (全13回)』


メモ

#01:例外処理の概要を理解しよう

  • 実行時エラーに対応するのが、例外処理。
  • 例外処理(Exception)の機能
    • try:あらかじめコードを指定して、プログラム実行時に、処理の問題を検出する
    • catch:問題を検出した時、どのように対応するか記述しておく
    • throws:対応を記述していない場合、メソッドの呼び出し元に対応を任せる
  • 例外が発生する例(コンパイルエラーなし)
    - ゼロで割り算
    - 配列の範囲外アクセス
    - ファイルが存在しない
    - オブジェクトがnull
    - 引数が不正
  • 例外が発生する例(コンパイルエラーあり)
    • 以下の処理を行う場合は、必ず例外処理を記述する。
      - ファイルの読み書き
      - ネットワークにアクセス
      - データベースにアクセス
      → チェック例外(検査例外)

#02:簡単な例外処理してみよう

  • try-catch-finally
    - try : 例外を捕捉する範囲
    - catch : 例外ハンドラー。例外発生時の対応処理
    - finally : 例外が発生してもしなくても、必ず実行する処理
  • 例外処理 - 0除算
    • try {
       // 実行時エラーが起こりそうな処理
      } catch (Exception e) {
       e.printStackTrace();
      } finally {
       // 必ず実行する処理
      }

#03:いろいろな書式で例外に対応しよう

  • 例外処理のメッセージを「実行時エラー」タブに出力する
    • System.err.println()

#04:発生させる例外を変えてみよう

  • 数値変換の例外
  • 登場した例外
    - Exception すべての例外を捕捉する
    - ArithmeticException ゼロ除算など、不正な算術計算で発生する例外
    - NumberFormatException 数値変換する文字列が不正な形式の時に発生する例外
    - ArrayIndexOutOfBoundsException 配列の範囲外にアクセスする例外

#05:複数の例外を捕捉してみよう

  • 複数の例外に対応するコード
    • try {
      } catch (NumberFormatException e) {
      } catch (ArithmeticException e) {
      } catch (Exception e) {
      } finally {
      }

#06:具体例:標準入力でプレイヤーを選択する

  • 具体例:標準入力でプレイヤーを選択するプログラム

#07:throwで意図的に例外を投げよう

  • throwで直接例外を投げる

#08:テキストファイルを読み書きしよう

  • 必要なライブラリのインポート
    • import java.io.*;
      import java.util.*;
  • ファイルの用意
    • File file = new File("test.txt");
  • テキストファイルを書きこむ(上書き)
    • FileWriter filewriter = new FileWriter(file);
      filewriter.write("Hello world\n");
      filewriter.write("Hello Java\n");
      filewriter.close();
  • テキストファイルを1行ずつ読み込む
    • Scanner scan = new Scanner(file);
      while (scan.hasNextLine()) {
       String line = scan.nextLine();
       System.out.println(line);
      }
      scan.close();

#09:ファイルアクセスに例外処理を追加しよう

  • ファイル読み書き + 例外処理
    • throws IOExceptionを削除するとコンパイルエラー
  • FileNotFoundException ファイルが存在しない場合の例外

#10:ファイルアクセスにtry-with-resourcesを使おう

  • ファイルアクセス + try-with-resources
    • 書き込み:try (FileWriter filewriter = new FileWriter(file)) {
    • 読み込み:try (Scanner sc = new Scanner(file)) {

#11:例外クラスのクラス構成を理解しよう

  • 例外オブジェクトの親子関係のサンプル
    Exception ← RuntimeException ← IllegalArgumentException ← NumberFormatException
  • 例外関連クラスの種類
    • Throwable
      エラーと例外のスーパークラス
    • Exception
      チェック例外/検査例外(プログラム内で捕捉が必要)
    • RuntimeException
      非チェック例外/実行時例外(プログラム中で捕捉は任意)
    • Error
      致命的な問題が発生し、実行を継続できない問題を表す。
  • 主なチェック例外:Exception
    • IOException
      ファイルやネットワークなど入出力の問題を検出
    • FileNotFoundException
      ファイルが開けなかったことを検出。IOExceptionのサブクラス
    • SQLException
      データベースアクセスの問題を検出
  • 主な非チェック例外
    • ArithmeticException
      ゼロ除算などの算術計算の問題を検出
    • NumberFormatException
      数値変換時に文字が与えられたことを検出。IllegalArgumentExceptionのサブクラス
    • ArrayIndexOutOfBoundsException
      配列の範囲外アクセスを検出

#12:throwsで例外処理を呼び出し元に任せよう

  • throwsで、例外対応を呼び出し元に任せる

#13:throwとtry-catchで再スローしよう

  • throwとtry-catchを組み合わせる再スローについて学習する。
    • 再スローでは、メソッドのcatchブロックの中から、受け取った例外を呼び出し元にスローする。そのおかげで、捕捉した例外を、catchのところで出来るだけ対応して、残りの作業を呼び出し元に任せることができる。

認定証

やっぱり例外の勘所がつかめないな〜😕 
チェック例外だったら、ちゃんと記述しておかないとコンパイルエラーなるらしいから、なんとかなるかもしれないけど。



何はともあれ、Java入門編もこれですべて修了だな。
契約期間も残り2日!?
さて、あと何個の講座を受けられるか?
全部終わらなかったとしても、とりあえず今月で解約して、
あともう1ヶ月単発で契約してみるかな?

まだ、受講していない講座はこんな感じかな?

学習ステータス


おぉ〜、なんか奇跡の騎士、かっちょえ〜😍 
アップの写真も載せとこう。



最新の画像もっと見る

コメントを投稿