多値返却でカバー 1. 複数の値を戻り値にできる 2. panic/defer/recoverでtry-catchに近い動き a. panic:throwのような動き b. defer:finallyのような動き c. recover:catchのような動き (大域脱出は基本的にない) =>Javaの例外が乱用された結果の言語思想 Go 23
// sealed で宣言し、permits で継承先を制限 public abstract sealed class UserExceptionBase extends Exception permits UserNotFoundException, UserNotUniqueException {} // UserExceptionBaseを継承、finalで子クラスを制限 public final class UserNotFoundException extends UserExceptionBase{} // UserExceptionBaseを継承、finalで子クラスを制限 public final class UserNotUniqueException extends UserExceptionBase{} シールクラスの例外処理への応用 30