Posts Tagged Arguments

Javaと例外

Javaで標準クラスを使う限り例外機構の実装はTry-Catchで決まりそう。
自前クラスをわざわざ用意するのは無駄なので標準クラスを使いたいところ。
なので、あまり好きじゃないけどTry-Catch文で試す。
前回の引数をとる続編として、引数をどんどん掛け算して行く。

Try-Catch文の書き方は

try
{
/* 処理 */
}
catch( 受け取るエラーのException型 変数 )
{
/* 処理でこけた後の処理 */
}

となる。
try文で処理をテストして、エラーが出た瞬間にcatch文へ進む。
catch文で例外の型に合致する箇所でパラメータを受け取り、適宜処理をする。

ArgumntsCalc.java

class ArgumentsCalc
{
public static void main( String args[] )
{
int argc = args.length;
double tmp, ans = 1.0;
for( int i = 0; i < argc; ++i )
{
try
{
ans *= Double.parseDouble( args[i] );
}
catch( NumberFormatException e )
{
System.out.println( e );
}
}
System.out.println( "result is " + ans + "." );
}
}

こんな感じ。
エラーが起きたらとりあえずエラー内容を出力する。
実行結果は下記の通り。

McLaren% javac ArgumentsCalc.java
McLaren% java ArgumentsCalc 2.0 5 x
java.lang.NumberFormatException: For input string: "x"
result is 10.0.

独習Java 第4版

著者/訳者:ジョゼフ・オニール

出版社:翔泳社( 2008-05-29 )

定価:

Amazon価格:¥ 3,456

大型本 ( 528 ページ )

ISBN-10 : 4798117153

ISBN-13 : 9784798117157


Post to Twitter

, , ,

No Comments

Javaと引数

Javaで引数をとってみる。

引数を複数とって、その数と引数自体を表示し、その長さも表示したい。
実行方法は

McLaren% java ArgumentsTest x y z abc

とする。

で、こんな感じのコードを書いてみた。

ArgmentsTest.java

class ArgumentsTest
{
public static void main( String args[] )
{
int maxLen = args.length;
System.out.println( "total arguments count is " + maxLen + "." );
for( int i = 0; i < maxLen; ++i )
{
System.out.println( "\tcurrent arguments is \"" + args[i] + "\"." );
System.out.println( "\t\tlength is " + args[i].length() + "." );
}
}
}

Javaでは引数がmainで取得したString型の変数に集約される。
と言うのも、引数の数を取得したければ .lengthを付け足せばそのメンバ変数に引数の数が入っている。
各々の引数は配列毎に格納されるので、その中で長さを取得したければ .length()メソッドを呼び出せば文字列長を取得することが出来る。

実行結果は下記の通り。

McLaren% javac ArgumentsTest.java
McLaren% java ArgumentsTest x y z abc
total arguments count is 4.
current arguments is "x".
length is 1.
current arguments is "y".
length is 1.
current arguments is "z".
length is 1.
current arguments is "abc".
length is 3.

独習Java 第4版

著者/訳者:ジョゼフ・オニール

出版社:翔泳社( 2008-05-29 )

定価:

Amazon価格:¥ 3,456

大型本 ( 528 ページ )

ISBN-10 : 4798117153

ISBN-13 : 9784798117157


Post to Twitter

, ,

No Comments