- ★★Java質問・相談スレッド168★★
388 :デフォルトの名無しさん[sage]:2014/04/05(土) 05:14:49.89 ID:8rXsI/QK - コマンドライン引数から受け取った文字列をURIとして処理しようとしたんだけど
URIとして認められない文字列を使ってjava.net.URIのインスタンスを生成しようとすると問答無用でコマンドプロンプトまでもが落ちるんだけど、何で? コード的には class Test { public void main(String[] args) throws java.lang.Exception { URI uri = new URI(args[0]); // URI uri = URI.create(args[0]); // こっちでも落ちる } } コマンドラインから これは問題なく処理される java Test http://2ch.net/ これが問答無用でコマンドプロンプトまでもが落ちる java Test hoge ちなみにargs[0]じゃなくString s = "hoge"; とか 直接 "hoge" を渡してやった場合は落ちなかった "hoge"の入力された args[0] を渡すと落ちる 原因よくわかんない
|
- ★★Java質問・相談スレッド168★★
389 :デフォルトの名無しさん[sage]:2014/04/05(土) 05:17:11.57 ID:8rXsI/QK - もう一つおかしいといえば
> String s = "hoge"; とか 直接 "hoge" を渡してやった場合は落ちなかった これ 本来URIとして無効な文字列渡したのだから例外が発生してもいいのに例外が発生しなかった jdk1.7.0_51
|
- ★★Java質問・相談スレッド168★★
390 :デフォルトの名無しさん[sage]:2014/04/05(土) 05:21:47.27 ID:8rXsI/QK - java.net.URIじゃなくjava.net.URLを使ったら例外メッセージは出たけど、やはりコマンドプロンプトが落ちた
出た例外メッセージはこれ Exception in thread "main" java.net.MalformedURLException: no protocol: hoge at java.net.URL.<init>(Unknown Source) at java.net.URL.<init>(Unknown Source) at java.net.URL.<init>(Unknown Source) at Test.main(Test.java:16)
|
- ★★Java質問・相談スレッド168★★
391 :デフォルトの名無しさん[sage]:2014/04/05(土) 05:26:27.90 ID:8rXsI/QK - >>390のこの例外自体は正常な動作なのに、その後すぐ何故かコマンドプロンプトごと落ちた。
|
- ★★Java質問・相談スレッド168★★
392 :デフォルトの名無しさん[sage]:2014/04/05(土) 05:28:15.17 ID:8rXsI/QK - ごめん、ちょっと違ったURLやURIが悪いんじゃなくてargs[0]に何か問題があるらしい
System.out.println(args[0].length()); をしただけで落ちた・・・
|