10
8

More than 5 years have passed since last update.

Scala: 例外クラスの作り方

Last updated at Posted at 2014-03-13

この記事で学べること

  • Scalaで例外クラスを作る方法
  • RuntimeExceptionを継承する方法
  • コンストラクタを持った例外クラスを作る方法

Scalaで例外クラスを作る方法

例外クラスの継承も普通のクラス同様に extends すればいい。

class MyException extends RuntimeException

しかし、この例の MyException は最も単純な例外クラスの作り方である。しかし、コンストラクタがないため、エラーメッセージを持たせる事ができない。あまり実用的とはいえない。

コンストラクタを持った例外クラスを作る方法

先の例にコンストラクタを持たせた実装は、下記のようなコードになる。引数にはデフォルト値をもたせている。場合によって message を省いたり、 cause を省いたりすることができる。

class MyException(message :String = null, cause :Throwable = null) extends RuntimeException(message, cause)

使い方1: 引数なしで例外オブジェクトを作る

エラーメッセージが必要ないときは、引数なしで例外オブジェクトを作れる。

new MyException()

使い方2: エラーメッセージを渡して例外オブジェクトを作る

エラーメッセージを渡す場合はこうする:

new MyException("something wrong")

使い方3: エラーメッセージと原因となる例外オブジェクトを渡してオブジェクトを作る

エラーメッセージとcatchした例外オブジェクトを渡して、新たに例外オブジェクトを作る使い方

val cause = new RuntimeException()
new MyException("something wrong", cause)

使い方4: 原因となる例外オブジェクトだけを渡してオブジェクトを作る

エラーメッセージは不要だが、とcatchした例外オブジェクトを渡して、新たに例外オブジェクトを作りたい場合はこう書く:

new MyException(cause = cause)
10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8