ヒントとは?
|
ランタイムエラーが発生したときに、コンソールなどによく表示されるものとして、「スタックトレース」があります。これは、例外の発生状況と発生個所を詳細に示すもので、デバッグ時には大いに役に立ちます。 しかし、読み方が分からないと何から手を付けたらよいか分からないのも事実です。特にWeb系のプログラミングをされている方は、非常に長いスタックトレースや2組のスタックトレースが同時に表示されてしまい何をどう見ればよいのか分からないこともあるのではないでしょうか。 スタックトレースは、その例外に関連しているクラスの数によって長さはまちまちですが、その書式は一定です。 例えば、次のようなクラスを見てみましょう。このプログラムはServletクラスです。このプログラムを、Tomcat(バージョンは5.5.12を想定)で実行してみます(web.xmlの記述や、デプロイの方法については割愛します)。実行時に、URLにnumberというパラメータを付けると、その数値を2乗した値が表示されますが、パラメータの内容が数値でない場合は、例外が発生し、ブラウザにはスタックトレースの内容が表示されます。 では、スタックトレースの内容を見てみましょう。先ほどの画面に「原因のすべてのスタックトレースは、Apache Tomcat/5.5.12のログに記録されています」とあるとおり、ブラウザにはトレースの一部しか表示されていませんので、Tomcatのログに表示されるトレースを見てみることにします。 かなり大量のトレースが表示されていますが、まずは先頭から順に見ていきましょう。トレースの先頭は、例外クラス名とその詳細メッセージです。 では次にこの例外がどこで発生しているかを見てみましょう。スタックトレースにはかなり多くのクラス名が列挙されていますが、大半のクラス名は見る必要がありません(注)。このスタックトレースで見るべきクラス名は、「自分が作成したクラス」です。この例では、 が、自分の作成したクラスです。()内にある行番号を見れば、実際のソース上での例外発生個所が分かりますので、あとはその個所で例外となり得る原因を考え、対処を施すことになります。この例ではInteger.parseInt()を実行する際に、数値以外の文字列が入ってしまう可能性があるため、その場合に例外が発生するのです。 注:実際には、スタックトレースは例外が発生した直接の原因となるメソッドから順に、呼び出し元のメソッドの個所が連なって表示されます。ですから、上位に表示されたメソッドほど直接の例外の発生原因に近いのですが、それがAPIやフレームワークなどのクラスのメソッドである場合、それら自身のバグでない限りは、まず自分のクラスを疑うのが原則です。 「スタックトレースの読み方」=「(1)先頭が例外の種類と内容、(2)2行目以降から自分が作成したクラスを探してみる」 このコンパイルエラーは、例外処理を扱うプログラミングをしている場合によく遭遇するものです。次の例を見てください。 このコンパイルエラーの対処を知るには、例外処理の仕組みについて少々知っておく必要があります。 まず、java.lang.Exceptionを基底とする例外クラスを自分のプログラムから送出(throw)する場合には、メソッド定義部にthrows節を用いて送出される可能性のある例外クラスをあらかじめ定義しておく必要があります。もしくは、そのメソッドから例外を送出するつもりがない場合は、try〜catch構文によってその例外を補足し、例外が送出されないようにしなければなりません。 throws節を追加し、前者の対応を行う場合は、setAgeメソッドの定義は次のようになります。 こうすることで、正しく例外送出ができるように定義することができます。後者の対応が必要な例を見てみましょう。 こうすることで、例外を正しく捕捉できるように定義することができます。 オブジェクトが必要な場合に、アプリケーションが null を使おうとするとスローされます。たとえば、以下のような場合があります。 とあります。中身がnullのオブジェクトに対して何か操作をしようとすると起きる例外ということですね。では例を見てみましょう。 この例は直前の行で変数strにnullを代入しているので非常に分かりやすいのですが、もっと複雑なコードでは、その個所を見ただけではそのオブジェクトがnullなのかどうかは分からないことが多いのです。発生個所からコードをさかのぼっていき、オブジェクトにnullが代入されたり、nullに初期化したままになっていないかどうかを調べてみましょう。 Tomcatをツールで運用し、設定の基礎を知る (2007/11/20)運用と設定といってもどこをどうすればいいのやら……? とお悩みの方は本稿を読んでTomcatを自由自在に操ってみましょう バッチ処理はJavaでバッチリ?その現状とこれから (2007/11/14) 基幹システムで多く見られるバッチ処理はJavaでどこまで適用できるのか。Spring Batchを筆頭に数々の製品やオープンソースも紹介しよう JavaScriptを書かずにAjaxを実現するjMaki (2007/11/7)jMakiを知ってますか? タグを書くだけでAjaxが実現できる便利なライブラリです。今回はそのjMakiをさらに便利に使うプラグインを紹介します Spring 2.0で自分なりの開発スタイルを確立しよう (2007/11/1)2.0の目玉機能であるAspectJとの統合を強化したAOPとWebに対応する新たなBeanスコープの使い方をサンプルを見ながら解説します ホワイトペーパー利用者に「Amazonギフト券」を抽選で100名様にプレゼント!――TechTargetジャパン リニューアル・キャンペーン Solutionフォーラム トップ|会議室|利用規約|プライバシーポリシー|サイトマップ |
[ 194] デバッグのヒント教えます(2) - @IT
[引用サイト] http://www.atmarkit.co.jp/fjava/rensai3/code_debug02/debug02.html
|
サブプライムローンの影響について、銀行や当局の関係者と話したところ、「影響はない」という声が大勢であった。しかし、ロシアの銀行事情をよく知る人たちは、「情報が今のところは開示されていないだけ」という解釈をするのかもしれない。(11/21更新)>>続き 今回は、起業における明確なビジョン設定に向けてより理解を深めるため、マーケットアウト・ビジネスの先駆者であり、今や年商1,000億円を超える企業に成長した株式会社ミスミ(現株式会社ミスミグループ本社)の事例を用いながら、掛け声に終わらない真の顧客本位の実践とは何かを、さらに深く考えていくことにする。(11/21更新)>>続き 「レジャー超大国、中国(3)〜上海観光客が見る紅の『三丁目の夕日』 地方の中国人観光客はぼくらの"昭和30年代"を生きている」【NBonline】 安東泰志のOn the horizon──投資ファンドの実像(ニューホライズンキャピタル 安東泰志氏) PE(プライベート・エクイティ)ファンド投資の世界潮流from香港(マッコーリー・ファンズ・マネジメント 北村元哉氏) 第1回 「アジアPE投資の急成長に取り残され気味の日本--原因は『ファンド』に対する拒絶反応」(10/24) 投資ファンドの欧州系ペルミラ、白石智哉・日本代表に聞く「企業との連携は重要。課題解決し、価値高める」(08/03) 第122回「知的資産の戦略的活用を強化、組織改編で活性化――NEC 知的資産統括本部長 江村克己氏に聞く」(11/09) 中国進出のための法律実務(伊藤 見富法律事務所/外国法共同事業 モリソン・フォースター外国法事務弁護士事務所 中国弁護士 阿麗莎氏) 第5回「企業と株主との対話を推進する投資(下)英年金ハーミーズ、マイク・コナーズ氏寄稿」(08/17) マーケティングと会計の接点〜会計制度から読み解く消費行動(公認会計士、会計意識 代表取締役 岩谷誠治氏) 第19回「ブランディングを成功させるポイントと具体例<理論編>ブランド価値を高める」(11/14) 第19回「セカンドライフに対するホテル業界のアプローチはカンブリア爆発(千差万別)型」(11/12) マーケティングと会計の接点〜会計制度から読み解く消費行動(公認会計士、会計意識 代表取締役 岩谷誠治氏) 永田公彦の環球眼−パリから世界と日本を直視する(Nagata Global Partners 代表パートナー永田公彦氏) 第5回「いじめられっ子の世界チャンピオン、内藤選手に感動!――自らの可能性に気づけば人生は変わる」(11/08) 日本経済新聞社について: 新聞記事利用 | 個人情報の取り扱い | 本社採用案内 | 日経グループ情報 | 会社情報・お知らせ | 新聞広告お申し込みガイド | NIKKEI4946.com(紙面紹介と購読案内) |
[ 195] NIKKEI NET Biz Plus −今日から役立つ経営のヒント満載−
[引用サイト] http://bizplus.nikkei.co.jp/
|
「教科書に載っていない英会話表現が知りたい!」「英語を活かせる就職情報がほしい!」「ネイティブがよく使うイディオムってどんなのがある?」など、読者からの声にお応えして、英語タウンでは現在、目的別に3つのメールマガジンを配信しています。 「よろしく!」「お疲れさま」「何となく…」「あり得ない!」「やっぱりね」など、普段、日本語でよく使う簡単な表現も、英語だと「わ、わからない…」なんてことありませんか? 「英語のヒント」は、辞書や参考書にはない「これって英語でなんて言うんだろう?」という、即、英会話に役立つ表現をとりあげて紹介。日本の参考書ではまちがって解説されていることもある誤解されやすいポイントなどについても取り上げます。 日本語でも、名言やことわざを会話でうまく使える人って、知的なイメージがありませんか? 英語でも同じ。「英語のヒント」では、古今東西の偉大な文学者から現代のビジネス成功者まで、彼らが残した名言や、現代でも通じる昔のことわざを英語と日本語で紹介。発言者の名前だけでなく背景も解説します。 「英語のヒント」はポッドキャスト番組と連動。「〜って英語でなに?」の会話例をネイティブ音声で聞くことができます。さらに、番組の後半では、外国人の友達や同僚とのリアルな英会話表現が学べる英語ドラマをお届け。メルマガとポッドキャストの両方を活用すれば、英語力も2倍UP! 「英語のヒント」読者を対象に、英語関連本や英語学習教材などの読者プレゼントを実施しています(不定期)。毎回、クリックひとつで簡単に応募できるようになっています。当選者は翌号の「英語のヒント」上で発表します。 「英語ができる有名人インタビュー」「英語映画レビュー」など、英語タウンサイト内の新着コンテンツ情報もいち早くお届け! 英語タウンのインターナショナルパーティーのスケジュールなども随時お知らせします。 前週の英語ショートクイズの中から問題を出題。毎週一つずつ、英語力の前進をかみしめましょう! いつも役立つメールをありがとうございます。「そうそう、これを言いたかったの」というようなかゆいところに手が届く表現、とっても役に立ってます。PCを持っていない友達にはプリントアウトして見せてあげたりして活用させていただいています。(N.Aさん) 『英語のヒント』の配信いつもありがとうございます。毎回楽しみにしております。過去にいろいろと、英会話のテキストを購入いたしましたが、そのどれよりも、『英語のヒント』が優れていると思います。(W.Tさん) 英語を使うお仕事情報だけでなく、英語の敬語や、オフィスでの英語など、外資系企業で役立つビジネス英語のヒントもお届け。また、アメリカとイギリスでは違う、履歴書の書き方、転職に役立つビジネス英語の資格についてなども特集します。 ネイティブ・スピーカーが、英会話でよく使うおすすめイディオムを毎日(土日を除く)1つずつご紹介。日本語訳、解説、実用例つきで、PC版と携帯版の両方から選べます。1分間程度で無理なく学習できるこのデイリーイディオムで、英語力をコツコツアップ! 「どんなTOEIC対策教材がいい?」「英会話スクール、どうやって選べばいいの?」など、教材やスクールでお悩みのあなたに、英語教材や英会話スクール情報をお届けします。購読者だけの特別割引や、特典なども満載! Home|ショッピング|留学・海外生活|ビジネス英語・求人情報|カルチャー|TOEIC・英語講座|国内・海外スクールガイド サイトマップ|ヘルプ|利用規約|プライバシーポリシー|広告掲載|会社案内|英語タウンについて | お問い合わせ|English 本ホームページに記載の文章、画像、写真などを無断で複製することは法律で禁じられています。 |
[ 196] 英会話力アップに役立つ!英語タウンのメルマガ【英会話と英語情報ポータルサイト 英語タウン】
[引用サイト] http://www.eigotown.com/e_member/m_magazine.shtml
