2017-06-26 5 views
0

をブロックせずにtryブロックの後にreturn文を実行する:私は両方のreturn文が実行されますデバッグモードでアプリケーションを実行するとは、私はこの方法でAndroidの内のコードを持って、最終的

try { 
    something(); 
    return obj; 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 
return null; 

、でも何finallyブロックが存在しないとコンパイラは2回目の復帰を必要とします(コンパイル時に "return return statement"がありません)。どうすればこのことが可能ですか?最終的になくてもtryブロックの場合は常にそうですか?

+3

"両方の返信文が実行されます" - あなたの質問を編集し、この主張の証拠を提供してください。 "これはどういうことが可能か" - それは不可能なので、なぜあなたはそれが起こっていると思うのか説明する必要があります。 – CommonsWare

+3

私はそれがちょうどあなたのtry-catchブロックの外にあることをデバッガによって示されたと思います。 – German

+2

@CommonsWare私はOPがコードをステップ実行し、各ステートメントが実行されたと思うように彼/彼女を混乱させる各returnステートメント間でどのようにジャンプするのかを見ています。 – Dayan

答えて

1

を実行されません。あなたのtry-catchブロックから外れていることが、デバッガによってただ表示されます。強調表示された行は実行された行を意味するものではありません。

-1

不可能、完全なコードを共有してください。すべての関数は1つのreturn文しか実行しません。つまり、関数のreturn文が見つかった場合、関数の実行が停止され、ユーザ定義またはプリミティブのいずれかの値が返されるか、ユーザに出力できます。

2

あなたは第2の戻り(return null;)が必要「()何か」が例外をスローした場合ので、その後、最初のリターン(return obj;は)これが不可能な

関連する問題