GWT でスタック トレースを文字列に出力することは可能ですか? java.io のクラスを使用する通常の方法は機能しないと思います。これは、java.io パッケージがクライアント側で利用できないためです (そして、Writer、PrintWriter などがそのパッケージに含まれています)。
ありがとうございました
GWT でスタック トレースを文字列に出力することは可能ですか? java.io のクラスを使用する通常の方法は機能しないと思います。これは、java.io パッケージがクライアント側で利用できないためです (そして、Writer、PrintWriter などがそのパッケージに含まれています)。
ありがとうございました
StackTraceElementがエミュレートされているかどうかはわかりませんが、エミュレートされている場合は、次のようなものを実行できます。
for (StackTraceElement element : exception.getStackTrace()) {
string += element + "\n";
}
String
完全なスタック トレースをGWTとして取得するために使用している方法は次のとおりです。
private static String getMessage (Throwable throwable) {
String ret="";
while (throwable!=null) {
if (throwable instanceof com.google.gwt.event.shared.UmbrellaException){
for (Throwable thr2 :((com.google.gwt.event.shared.UmbrellaException)throwable).getCauses()){
if (ret != "")
ret += "\nCaused by: ";
ret += thr2.toString();
ret += "\n at "+getMessage(thr2);
}
} else if (throwable instanceof com.google.web.bindery.event.shared.UmbrellaException){
for (Throwable thr2 :((com.google.web.bindery.event.shared.UmbrellaException)throwable).getCauses()){
if (ret != "")
ret += "\nCaused by: ";
ret += thr2.toString();
ret += "\n at "+getMessage(thr2);
}
} else {
if (ret != "")
ret += "\nCaused by: ";
ret += throwable.toString();
for (StackTraceElement sTE : throwable.getStackTrace())
ret += "\n at "+sTE;
}
throwable = throwable.getCause();
}
return ret;
}
エラー スタック トレースを GUI ラベルに表示することはお勧めしません。
1) GWT 難読化後は読み取り不能。それらは、改行の上にタブで整列された文字の束のように見えます。
2) I18N 形式ではありません。
3) 正しい方法は、正しい形式のエラー "Message" をユーザーに表示することです。exception.getMessage() は、ユーザーに必要な UX インタラクションを提供する、obf 以外の情報を 1 行で提供します。
well formed
4) (ユーザー向けではなく) デバッグに役立つ例外スタックトレースを探している場合は、GWT の十分に文書化されたロギング機能を Web モードの例外とともに使用する必要があります -
a) https://developers.google.com/web-toolkit/doc/latest/DevGuideLogging
b) http://code.google.com/p/google-web-toolkit/wiki/WebModeExceptionsも参照してください。