printStackTrace()メソッドに関する疑問

このQ&Aのポイント
  • printStackTrace()メソッドを使用した例外処理についての疑問があります。
  • AppletやServletのプログラム内でprintStackTrace()メソッドを使用すると、例外メッセージが表示されますが、HTMLで画面表示させることはできるのでしょうか?
  • getMessage()メソッドではメッセージの取得ができますが、printStackTrace()メソッドでは上手く取得できません。
回答を見る
  • ベストアンサー

printStackTrace()メソッドに関する疑問

お世話になります。 Javaの例外処理等で使用されるprintStackTrace()メソッドに関する疑問なのですが・・・。 AppletやServletのプログラム内の例外処理で使用されるprintStackTrace()メソッドは通常例外が発生すると、ログ等に例外メッセージが表示されますが、printStackTrace()メソッドで取得した例外メッセージをHTMLで画面表示させる事は(エラーメッセージや例外メッセージが発生した時にそのメッセージをHTMLで画面表示させる様にするという処理を行う場合)出来るのでしょうか? getMessage()メソッドでは上手くメッセージを取得して変数に格納し、HTMLでメッセージを画面表示させるようには出来るのですが、printStackTrace()メソッドでは上手く出来ません。 ご存知の方がいらっしゃいましたら、是非ご教授お願い致します。

  • Java
  • 回答数1
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • ---
  • ベストアンサー率50% (7/14)
回答No.1

APIによると getMessage()は public String getMessage(); です。printStackTrace()は public void printStackTrace() public void printStackTrace(PrintStream s) public void printStackTrace(PrintWriter s) となっています。 例えばservletやJSPなら 3番目のを使って exception.printStackTrace(out); とかすれば良いのではないでしょうか。

globe8
質問者

お礼

今日和、ご回答どうも有難うございました。 printStackTrace()メソッドについて、まだあまり理解が出来ていなかったので、とても嬉しかったです。 ご回答頂いた文章を参考に、早速試してみたいと思います。

関連するQ&A

  • frameとgetメソッド

    はじめまして。Servletについて質問させていただきます。 フレームにあるサーブレットを指定して、下記の様にgetメソッドで値を渡そうと思っています。 <frame name="text" src="ServletTest?para1=1&para2=2"> ですが、実行すると 「HTTPステータス 405 - HTTPのGETメソッドは、このURLではサポートされていません。」 というメッセージが表示されます。 http://oshiete.nikkeibp.co.jp/qa2865668.html に書かれている方法でも値は渡せると思うのですが、getメソッドは使用できないのでしょうか? アドバイスお願い致します。

    • ベストアンサー
    • Java
  • メソッドを使ったプログラム

    メソッドをつかったプログラムで数当てゲームを作成したいのですが 1から1000までのランダムな値(以降 数値X として)を取得し、プレイヤーにその数を当てさせる。 プレイヤーが入力した数値(以降 数値Y として)が数値Xより大きければ『もっと小さいです』、数値Yが数値Xより小さければ『もっと大きいです』と出力する。 数値Xと数値Yが同じになるまで繰り返し、何回であったたかを最後に表示する。 条件:以下の処理の単位をメソッドにする。   1.1から1000までのランダムな値を取得する。   2.数値X、数値Yの関係(大小、等しい)を調べ、適切なメッセージを出力する というプログラミングを作成したいのですがどういうふうにしたらよいのかわかりません!! import java.io.*; class Question7_2{ public static void main(String[] args){ BufferedReader r = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("数当てゲーム"); というところでとまった状態です。どのようにしたらよいか教えてください!例外発生やIf文を使うというのまではわかるのですが…

  • getParameterとgetInitParameterの違いについて

    いつもお世話になっています。 現在HTMLファイルからServletを呼び出す処理を行っています。 Servletファイル側のdoPostメソッドのなかでよく記述してある HttpServletRequest.getparameter("パラメタ名")は HTMLファイルのFORMタグのなかにある情報を取得するものですが、 初期処理(initメソッド)でよく記述されている ServletConfig.getInitParameter("パラメタ名")は どこの情報を取得しようとしているものなのでしょうか? また public void doPost(HttpServletRequest request, HttpServletResponse response) という記述ではServletファイルが呼ばれた時に引数をrequestに取得しますが このときresponseの中身はNULLの状態なのでしょうか? responseの使い方がいまいちイメージできなくて。。 たくさん質問してすいません。 何かお気づきの方が居られましたら、ご教授ください。 宜しくお願いします。

    • ベストアンサー
    • Java
  • RequestDispatcherオブジェクトについて。

    データベース表示を行うサーブレットを呼び出す処理を行うには、RequestDispatcherオブジェクトを取得して、そのforwardメソッドを呼び出すだけと聞きましたが、うまくいきません。どなたかどこが悪いか教えてください。 // データベース表示するために、RequestDispatcherを取得 ServletContext cx = getServletContext(); RequestDispatcher rd = cx.getRequestDispatcher( "/netjv/servlet/shuwa.ext_db5_2_1"); // サーブレットを呼び出す rd.forward(request, response); } catch (Exception e) { e.printStackTrace(); } } 後、URL部分にはどこからのパスを書けばよいのでしょうか?あってるか不安です。

    • ベストアンサー
    • Java
  • ResultSetオブジェクトのメソッドについて

    AccessでつくったRDBにJDBCで接続してデータを表示させたいのですが、ResultSetオブジェクトのprevious()メソッドやfirst()メソッドを使うとうまくいまず困ってます。 下記のプログラムを実行するとエラーになります。 ------------------------------------------------ (省略) int r = 0; while(resultset.next()){ r++; } while(resultset.first()){ } ------------------------------------------------ 又は ------------------------------------------------ (省略) int r = 0; while(resultset.next()){ r++; } while(resultset.previous()){ String 変数名 = resultset.getString("フィールド名"); // タイトル名を取得/ (省略) ------------------------------------------------ エラー ----------------------------------------------- javax.servlet.ServletException: Result set type is TYPE_FORWARD_ONLY ----------------------------------------------- #カーソルのバックはできない? next()メソッドを使った後に、取得したデータの処理はどの様にすればよいのかがわかりません。 ご教授お願いします。

    • ベストアンサー
    • Java
  • Struts + Ajaxで画面更新

    お世話になります。 javascriptかJavaか迷ったのですが、こちらに投稿させていただきます。 もしカテゴリ違いなら申し訳ありません。 Strutsを使用しているのですが、Ajaxで画面遷移を行わずに画面の更新をしたいと思っています。 JSP内のincludeで読み込んでいるHTMLを更新したいです。 jqueryのpostメソッドでアクションを呼び出して更新データの取得などの処理までは行えたんですが、その後画面を更新する方法がよくわかりません。 例などを見ると、javascriptでタグなどをappendしたりして更新するのが多いのですがそれだと複雑なテーブルだったりアクションで取得して格納したbeanのデータを利用したいなどが難しそうなので、 バックグラウンドで行った後別のHTMLに表示してそれをincludeとかで更新できたらと思っているのですが無理なのでしょうか? もし無理ならそういう場合はどのように処理を行うのがよいのでしょうか。 意図がよくつかめない質問になり申しわけありませんが、回答よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Servletでインタラクティブな画面、できますか?

    Servlet学習中なのですが、一応文法などを一通りやりまして、好きなものを処理して表示させることができるようになりました。 そこで、ふと疑問が出たのですが、HTMLは通常ヘッダを出力して内容を出力してオシマイですよね。 ということは、Servlet単体ではページ単位でしか出力はできないのでしょうか。たとえば、画面の一部分が機器の制御パネルになっていて、操作ボタンを押すとページがリロードされて結果が表示されるのではなく、そのパーツだけすぐ更新されて結果が表示される。こんなことは、Appletを使わない限り無理なのでしょうか? サーバサイドである限りダメっぽい気もしますね・・・。;;

    • ベストアンサー
    • Java
  • JSPのメソッドサイズ制限について

    JSPを初めたばかりで、基本的なこともよくわからなくてどなたかお教え願えないでしょうか Eclipseを操作しながら作成しています 今回複雑な計算処理のJSP(form文のactionで実行)で作成する予定で、メソッドが64Kバイトを超えることが想定されます JSPでは、64K バイトを超えるサイズのメソッドの生成出来ない記載と、 jspのメソッドの行数が,コメントおよび空行を含めて1000行を超える場合が発生する記載を見つけました 下記対策が有るようですが、jspではどの方法とるのがよいかですか   1.jspのスリム化には     (a)コメント、スペース、改行を減らす     (b)動的includeを使用して分割する        変数の引き渡しが必要で単純に分割出来ない     (c)beanで処理できる部分を作成        Eclipseでの作成方法の手順があるとたすかります (d)<%! function(){} %>別メソッドを作成        この方法は正しいかわかりません   2.jspでなくてservletで作成する        

    • ベストアンサー
    • Java
  • Execメソッドについて

    お世話になります。 VBScriptについての質問です。 カテゴリがなかったので、こちらに書いてます。 DOS画面から、cscriptで別PGMを実行するのに Execメソッドを利用して、コマンド実行を行っていますが 処理をループでまわしているため、画面上にDOS画面が バサバサと一瞬あがってしまいます。 これを回避する方法ってありますか? (非表示にしたり、最小化したり。。) コマンド実行の戻り値をそのまま変数に受取りたいため Runメソッドは使えないと思っています。

  • 種類が一致しません。 (HRESULT からの例外

    VB.NET(2.0)からActiveXコントロールを使用しています。 あるメソッドを使おうとすると、 'System.Runtime.InteropServices.COMException' の初回例外が mscorlib.dll で発生しました。 とイミディエイトウィンドウに出て、 COMException はハンドルされませんでした。 種類が一致しません。 (HRESULT からの例外: 0x80020005 (DISP_E_TYPEMISMATCH)) という例外ヘルパのメッセージが出てきます。 試しに、そのActiveXコントロールを埋め込んだHTMLを作り、VBScript で同メソッドを同条件で使うと、正しく処理をしてくれるので、メソッド内で例外が発生するような事はないのは確認済みです。 http://msdn.microsoft.com/ja-jp/library/af1y26ew(VS.90).aspx を読んで、ErrorCode が "-2147352571" になっている事を確認しましたが、それ以上解決策を見つける事が出来ませんでした。そもそも「種類が一致しません。」の意味が分かりません。何の種類なんでしょうか。 どなたかお力添え頂ければ幸いです。

専門家に質問してみよう