JAVA两道改错题,请用try/catch语句改写

第一题:下列程序运行时将抛出NumberFormatException异常,请用try/catch语句捕获并处理异常
public class C
{
public static void main(String[] args)
{
Integer a=new Integer("3,3");
int i=a.intValue();
System.out.println(a);
}
}
第二题:下列程序运行时将抛出ArrayIndexOutOfBoundsException 异常,如果把“3.8”改为“S.8”,将抛出NumberFormatException异常,请用try/catch语句改下下列程序。
public class D
{
public static void main(String[] args)
{
double arr[]=new double[3];
Double d=new Double("3.8");
double dd=d;
arr[3]=dd;
}
}

第1个回答  2010-11-16
public class C
{
public static void main(String[] args)
{ Integer a=null; //声明一个对象
try{
a=new Integer("3,3"); //此处要对异常进行捕获
}
catch(NumberFormatException e){e.printStackTrace();} //捕获异常
int i=a.intValue(); //得到数值
System.out.println(a);
}
}
public class D
{
public static void main(String[] args)
{
double arr[]=new double[3]; //声明并开辟数组
Double d=null; //声明一个Double类对象
double dd=0.0; //定义一个double变量
try{
d=new Double("3.8"); //执行此语句时要对异常进行捕获
}catch(NumberFormatException ee){ ee.printStackTrace();}

dd=d.doubleValue(); //将此对象的值赋给dd
try
{ arr[3]=dd; //此处有异常进行捕获
}
catch(ArrayIndexOutOfBoundsException e){ e.printStackTrace();}

}
}
第2个回答  2010-11-15
public class C
{
public static void main(String[] args)
{
try{
Integer a=new Integer("3,3");
int i=a.intValue();
System.out.println(a);
}
catch(NumberFormatException e){e.printstacktrace();}
}
}
public class D
{
public static void main(String[] args)
{
try{
double arr[]=new double[3];
Double d=new Double("3.8");
double dd=d;
arr[3]=dd;
}
catch(ArrayIndexOutOfBoundsException e){
e.printstacktrace();}
catch(NumberFormatException ee){
ee.printstacktrace();}

}
}本回答被提问者采纳
第3个回答  2010-11-15
第一题:
Integer 是int 的包装类 你传的参数3,3不会对的
可以是整数类型的包装
第二题:
double arr[]=new double[3];
定义的数组只有三个元素 arr[0],arr[1],arr[2]
所以越界是正常的
第4个回答  2010-11-15
第一题:
public class C{
public static void main(String[] args){
try{
Integer a=new Integer("3,3");
int i=a.intValue();
System.out.println(a);
}catch(NumberFormatException e){}
}
}

第二题:
public class D{
public static void main(String[] args){
double arr[]=new double[3];
Double d=new Double("3.8");
try{
double dd=d;
arr[3]=dd;
}catch(ArrayIndexOutOfBoundsException e){
}catch(NumberFormatException e){
}
}
}
相似回答