[解決済み] 独自の例外ではなくUndeclaredThrowableExceptionを取得する
2022-02-28 23:45:58
質問
私は以下のコードを持っています。
public Object handlePermission(ProceedingJoinPoint joinPoint, RequirePermission permission) throws AccessException, Throwable {
System.out.println("Permission = " + permission.value());
if (user.hasPermission(permission.value())) {
System.out.println("Permission granted ");
return joinPoint.proceed();
} else {
System.out.println("No Permission");
throw new AccessException("Current user does not have required permission");
}
}
パーミッションのないユーザーを使うと
java.lang.reflect.UndeclaredThrowableException
ではなく
AccessException
.
解決方法は?
AccessException
はチェックされた例外ですが、そのメソッドの
throws
節から(実際には、そのメソッドをインターセプトするアスペクトから)。これはJavaでは異常な状態なので、あなたの例外は
UndeclaredThrowableException
のように、チェックが外れています。
例外をそのまま取得するには、その例外を
throws
節を使うか、あるいは別のチェックされていない例外 (すなわち
RuntimeException
の代わりに
AccessException
.
関連
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] 一部の入力ファイルが非推奨のAPIを使用またはオーバーライドしている
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] javax.naming.NameNotFoundException
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] Javaでリストを反復処理する方法
-
[解決済み] なぜJava 8のOptionalは引数で使ってはいけないのか
-
[解決済み] GsonでList<T>オブジェクトをデシリアライズする?
-
[解決済み】 java.lang.reflect.InvocationTargetException の原因は何でしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JVMフラグCMSClassUnloadingEnabledは、実際に何をするのですか?
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] Application startメソッドで例外が発生する。JavaFx 11
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない