質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

3658閲覧

[java]synchronizedを使用した時にcatchブロックに入らない

ryo_se

総合スコア68

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/02/07 03:44

編集2017/02/08 00:24

現在javaでsynchronizedを使用した処理を書いているのですが、
下記コードのsetメソッド内でエラーがあった場合に、
setメソッド、doメソッドどちらのcatchにも入らず、
コンソールにエラーが表示され強制終了されてしまいます。

デバッグ時の動きとしては
setメソッドでエラー
→catchに入らず、呼び出し元のdoメソッド内synchronizedの行にデバックのカーソルが移動
→更に進めると「InvocationTargetException」クラスの「super((Throwable)null);」の箇所に移動といった流れになります。

catchに入る対策方法をご教示いただければ幸いです。

↓以下修正致しました。

public void doSync (){ synchronized(Inf.lock){ try{ edit = this.set(inf); } catch (Exception e) { //処理 } } } public String set( Inf inf){ try{ //エラー処理 }catch(Exception e){ return null; } return "true"; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

swordone

2017/02/07 03:53

インデントをそろえてください。あとdoってメソッド名に出来ましたっけ?
swordone

2017/02/08 01:48

これだけ出されても、何が何だかわかりません。setの何でエラーが発生したときにそうなるのか、こんなにはしょらないでちゃんと載せてください。エラーもステップ実行したものではなく、実際でたエラーメッセージを載せてください。
ozwk

2017/02/08 01:52

とりあえず色々補間しつつ再現を試みたところ、普通にset内のcatchでエラー捕捉しました。再現するコードを質問文に載せてください。
guest

回答1

0

setメソッドの中でExceptionをcatchして握りつぶしてしまっているので、doSyncメソッドでは例外をキャッチできません。

java

1public String set ( Inf inf) throws Exception{ 2 3 //エラー処理 4 5 return "true"; 6}

とすれば例外がsetの外に投げられるので目的の動作になるのではないでしょうか。

投稿2017/02/08 03:09

7tsuno

総合スコア310

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問