質問: getstacktrace().tostring(); としてみたのですが、うまく取得できません。誰か方法のわかる方は返事をください。よろしくお願いします。
回答: stringwriterは1.4から使えるようになったクラスではありませんよ。 1.1から使えます。(とapiリファレンスに書いてあります) したがってukyさんが回答した内容こそが、jdkのバージョンをあまり問わずに 使用できる、万能な方法です。 逆に、kamkamkam3さんが質問された、getstacktrace()を使用する方法は、 jdk1.4から使えるようになった機能です。 getstacktrace()は、stacktraceelementの配列を返します。 ちょうど、printstacktrace()を実行したときの1行分の情報が配列の1要素になっているイメージです。 配列を返すので、それをtostring()しても欲しい情報が得られなかったのだと思います。 こんな感じで取り出した配列から1つずつ望みの情報を取り出してください。 stacktraceelement[] ary = e.getstacktrace(); //eはexceptionクラス for (int i = 0; i < ary.length; i++){ system.out.println(ary[i].getfilename()); } jdk1.4から使えるようになった機能ですが、スタックトレースの各要素について 行番号や、ファイル名、メソッド名などが自由にとりだせるので、 そういった細かい情報が必要であれば、便利だと思います。 (stringwriterを使ってファイル名や行番号の情報を取り出すのは面倒なので) 単にスタックトレース全体のテキストデータを取得したいのであれば、 ukyさんが書いた方法の方が楽です。 stacktraceelementについては、apiリファレンスを参考にしてください。 参考url:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/stacktraceelement.html