KotlinでAPI開発を行っています。
あるプリミティブ型に対してラッパークラスを作成し、コンストラクタでバリデーションを行う事を考えています。
kotlin
1class TestNumber(_value: Int>) { 2 init { 3 if (_value < 0) { 4 throw Exception() 5 } 6 } 7}
ざっくり上記のようなコードで、意に反する値が入るときにそれを許さないコードを書きたいです。
そしてそれは上記である程度実現可能です。
ただし、kotlinはJavaと異なって使用する側にtry-catchを強制しないため、
「このインスタンスを作るときはtry-catchすること」というようなルールを生まざるを得ず、
それは好ましくないように感じています。
(それを忘れると、例えば画面上でエラーメッセージを出したいようなケースでも500エラーになってしまう)
より安全に、コード上で「TestNumberには0以上の値しか与えられない」ことを表現する方法をご存知でしたら、アドバイスいただきたいです。
ー追記
例外処理というよりは、呼び出し側で「0以下の数字を与えない」ように気を付ける方が自然なのでしょうか
(それも不親切と思っていましたが、、そういうものでしょうか。)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/04 11:31