import static java.lang.System.out;
public class Primitive2Wrapper
{
public static void main(String[] args)
{
Long lObj = new Long("d");
}
}为何上面代码编译没问题,运行报错,请问判断编译没有问题但是运行有问题?
public class Primitive2Wrapper
{
public static void main(String[] args)
{
Long lObj = new Long("d");
}
}为何上面代码编译没问题,运行报错,请问判断编译没有问题但是运行有问题?
错误可以运行么?
这个语法没问题编译没问题可是运行的时候,把d转为整数时 发生错误!即你说的运行错误!
运行错误,一般指程序上的bug,比如你写的,d怎么转成double
运行时错误是你的代码逻辑有问题,例如使用了空对象,强制类型转换啊。例如:Long long=new Long("aa");这句代码,编译不会出错,但是当他运行的时候它会产生一个类型转换失败的异常。
运行错误是程序语法没有问题,运行的时候出错。
修改程序:public class myTest {
public static void main(String []args){
try{
Long lObj = new Long("d");
System.out.println(lObj);
}catch (Exception e) {
e.printStackTrace();
}
}
}
运行程序,程序抛出异常
java.lang.NumberFormatException: For input string: "d"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:403)
at java.lang.Long.<init>(Long.java:671)
at myTest.main(myTest.java:5)修改程序:public class myTest {
public static void main(String []args){
try{
Long lObj = new Long("123456");//String中的内容改为数字
System.out.println(lObj);
}catch (Exception e) {
e.printStackTrace();
}
}
}程序运行结果:
123456