これが私の解決策です-Android用に開発されましたが、「通常の」Javaに簡単に適応できます:
public class ImpossibleException extends RuntimeException {
public ImpossibleException(@NonNull String whyNotPossible) {
this(whyNotPossible, null);
}
public ImpossibleException(@NonNull String whyNotPossible, Throwable throwable) {
super("Impossible exception: " + whyNotPossible, throwable);
Log.e("Impossible", whyNotPossible, throwable);
}
}
使用法:
try {
byte[] data = "Hello".getBytes("utf-8");
Log.i("Test", "data.length=" + data.length);
} catch (UnsupportedEncodingException e) {
throw new ImpossibleException("Android always supports utf-8", e);
}
コンストラクターは、whyNotPossible
発生したエラーをログに記録する必要がないことを意味し、コメントも必要ありません。
ImpossibleException extends RuntimeException
これが かかは好みの問題だと思いImpossibleError extends Error
ます。