- PR -

例外毎のメソッド一覧を調べる方法はありますか?

投稿者投稿内容
Orphan
ベテラン
会議室デビュー日: 2004/02/06
投稿数: 54
投稿日時: 2004-04-09 10:56
お世話になります。

APIを見ると、メソッドで発生し得る例外はわかるのですが、(例:parseIntだとNumberFormatException)
逆に、例外毎のメソッド一覧(例:NumberFormatExceptionが発生し得るメソッドはparseIntとコレとアレと・・・)のような感じで調べる方法はありますでしょうか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-04-09 11:12
src.jar を解凍して grep するのはどうでしょうか?
永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2004-04-09 11:37
引用:

APIを見ると、メソッドで発生し得る例外はわかるのですが、(例:parseIntだとNumberFormatException)
逆に、例外毎のメソッド一覧(例:NumberFormatExceptionが発生し得るメソッドはparseIntとコレとアレと・・・)のような感じで調べる方法はありますでしょうか?



方法としては確かにインギさんの仰る方法で調べられる気はしますが……。
それ以前の問題として「例外が発生した」……という場合には例外自体に発生元の情報が入っているハズですから、一覧を作ること自体にあまり意味がないような。
#リストとコードを見て考えるより、#printStackTraceした方が早いと思うのです

参考までに、どういう用途でその資料が求められているのか、教えてくださいませんか?
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2004-04-09 11:50
それもAPIで調べられますよ。 (NumberFormatExceptionの場合)
javadocの「使用」のページはかなり便利ですので活用しましょう。
# EclipseのAPIとか「使用」のページが出力されてないことが多いけど...

ただ、この場合だと出力したjavadocに含まれている範囲しかわからないので、
手持ちのソースの中から調べたいならやはりgrepが手っ取り早いでしょうね。
Orphan
ベテラン
会議室デビュー日: 2004/02/06
投稿数: 54
投稿日時: 2004-04-09 13:21
っこんな便利な機能があったとは。。。知りませんでした。

ありがとうございました。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-04-09 13:36
unibon です。こんにちわ。

引用:

Wataさんの書き込み (2004-04-09 11:50) より:
ただ、この場合だと出力したjavadocに含まれている範囲しかわからないので、
手持ちのソースの中から調べたいならやはりgrepが手っ取り早いでしょうね。


おっしゃるとおり(javadoc の範囲内のみ)ですよね。
#以下、もとのご質問に対する直接の回答ではないですが。

たとえば NullPointerException などは多くのメソッドが throw するものですが、でも javadoc に書いてないことがほとんどです。
以前に、「NumberFormatException が非チェック例外なのはなぜ?」
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7503&forum=12
のスレッドで質問させていただきましたが、NumberFormatException は特別扱いの部類に入るので javadoc にもちゃんと書かれているようです。
原理的にあたりまえですが、非チェック例外はメソッドを呼んで動かしてみないことにはなにが throw されるかは厳密には分からないですね。
R-55
常連さん
会議室デビュー日: 2003/03/13
投稿数: 29
投稿日時: 2004-04-09 13:56
基本的に例外クラスのインスタンスを作成するときはそれを投げるときだと
思いますのでeclipse上でNumberFormatExceptionのコンストラクタを右クリックし
参照→ワークスペースで検索してみると以下のクラスがヒットしました。

java.math.BigDecimal
java.math.BigInteger
java.lang.Byte
java.lang.Integer
java.lang.Logn
java.lang.Short
java.lang.Package
java.lang.FloatingDecimal
com.sun.corba.se.internal.core.GIOPVersion

ただしjava.awt.Color#decodeはその内部でInteger#decodeを使用しており
その例外をそのまま投げているだけなのでヒットしませんでした。
参考になれば。
Orphan
ベテラン
会議室デビュー日: 2004/02/06
投稿数: 54
投稿日時: 2004-04-09 14:33
引用:

R-55さんの書き込み (2004-04-09 13:56) より:
基本的に例外クラスのインスタンスを作成するときはそれを投げるときだと
思いますのでeclipse上でNumberFormatExceptionのコンストラクタを右クリックし
参照→ワークスペースで検索してみると以下のクラスがヒットしました。



この方法だと、コンストラクタで例外が発生する場合もヒットしますね。
java.math.BigDecimal
java.math.BigInteger

スキルアップ/キャリアアップ(JOB@IT)