忍者ブログ

とある社内SEの備忘録 !!

主にRPA、Androidアプリ開発について投稿しています。メモ書きです。

Exception発生時、クラス名やメソッド名を取得する 【その2】

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Exception発生時、クラス名やメソッド名を取得する 【その2】


}catch (Exception e){
//クラス名.メソッド名:原因
Log.e(e.getStackTrace()[1].getClassName() + "." + e.getStackTrace()[1].getMethodName(),e.getMessage());
//×:java.lang.Integer.parseInt:For input string:"s"
Log.e(e.getStackTrace()[2].getClassName() + "." + e.getStackTrace()[2].getMethodName(),e.getLocalizedMessage());//エラー箇所
//〇
String str;
//クラス名の出力
str = new Object(){}.getClass().getName();
Log.e("1.Class:",str);//△:末尾に$nがつく

str = new Object(){}.getClass().getEnclosingClass().getName();
Log.e("2.Class:",str);//〇

str = Thread.currentThread().getStackTrace()[1].getClassName(); //スタックトレースから取得
Log.e("3.Class:",str);//×:java.lang.Thread

//メソッド名の出力
str = new Object(){}.getClass().getEnclosingMethod().getName(); //
Log.e("1.Method:",str);//〇
str = Thread.currentThread().getStackTrace()[1].getMethodName();
Log.e("2.Method:",str);//×:getStackTrace

StackTraceElement[] ste = e.getStackTrace();
Log.e("StackTraceElement[1]","-------------------------------");
Log.e("FileName:",ste[1].getFileName());
//Integer.jaa
Log.e("ClassName:",ste[1].getClassName());
//java.lang.Integer
Log.e("MethodName:",ste[1].getMethodName());
//parseInt
Log.e("LineNumber:",Integer.toString(ste[1].getLineNumber()));
//556

Log.e("StackTraceElement[2]","-------------------------------");
Log.e("FileName:",ste[2].getFileName());
//〇
Log.e("ClassName:",ste[2].getClassName());
//〇:パッケージ名.クラス名
Log.e("MethodName:",ste[2].getMethodName());
//〇
Log.e("LineNumber:",Integer.toString(ste[2].getLineNumber()));
//〇
e.printStackTrace();
Log.e("getMessage",e.getMessage());
//For input string:"s"
Log.e("getLocalizedMessage()",e.getLocalizedMessage());
//For input string:"s"
Log.e("getStackTrace()[2].toString()",e.getStackTrace()[2].toString());
Log.e("getClass.getSimpleName+getMessage",e.getClass().getSimpleName()+":"+e.getMessage());
}

 E/java.lang.Integer.parseInt: For input string: "s"
 E/com.example.tester.testProject.TestActivity.setRightDataR: For input string: "s"
 E/1.Class:: com.example.tester.testProject.TestActivity$9
 E/2.Class:: com.example.tester.testProject.TestActivity
 E/3.Class:: java.lang.Thread
 E/1.Method:: setRightDataR
 E/2.Method:: getStackTrace
 E/StackTraceElement[1]: -------------------------------
 E/FileName:: Integer.java
 E/ClassName:: java.lang.Integer
 E/MethodName:: parseInt
 E/LineNumber:: 556
 E/StackTraceElement[2]: -------------------------------
 E/FileName:: TestActivity.java
 E/ClassName:: com.example.tester.testProject.TestActivity
 E/MethodName:: setRightDataR
 E/LineNumber:: 669
 E/getMessage: For input string: "s"
 E/getLocalizedMessage(): For input string: "s"
 E/getStackTrace()[2].toString(): com.example.tester.testProject.TestActivity.setRightDataR(TestActivity.java:669)
 E/getClass.getSimpleName+getMessage: NumberFormatException:For input string: "s"
PR

コメント

プロフィール

HN:
Satoshin
性別:
男性
職業:
開拓エンジニア
趣味:
ダーツ、麻雀、カラオケ、ジョギング
自己紹介:
横浜在住の30代♂

某企業の情報システム部門に所属。
⇒転職活動中

業務効率化を推進しつつ自社用Androidアプリを開発している。
言語:Java、VB.NET、VBA、ASP.NET、C#
興味:Kotlin、Python、AWS、UiPath

横浜圏の友人皆無・・(´;ω;`)
RPA、ダーツ、麻雀、飲み仲間募集中w

麻雀格闘倶楽部はココに出没中

AbemaTVでM.LEAGUE鑑賞中!!

P R