import static java.lang.System.out;
public class Primitive2Wrapper
{
public static void main(String[] args)
{
Long lObj = new Long("d");
}
}为何上面代码编译没问题,运行报错,请问判断编译没有问题但是运行有问题?

解决方案 »

  1.   

    error和Exception有什么区别呢?
    错误可以运行么?
      

  2.   

    new Long("d");
    这个语法没问题编译没问题可是运行的时候,把d转为整数时 发生错误!即你说的运行错误!
      

  3.   

    编译错误,一般指语法上的错误,比如 int a = "abcdef";String a = 1234; int i = new object();
    运行错误,一般指程序上的bug,比如你写的,d怎么转成double
      

  4.   

    你用Eclipse之类的IDE工具就知道了。
      

  5.   

    编译错误就是说你的代码有问题,比如说语法错误,这个很好理解。运行时错误就是说运行时才有可能产生的问题,并且这些问题我们可以进行处理,从而避免中断程序,产生不好得用户体验。比如你要打开一个文件,然后读取数据,但是实际中,可能这个文件不存在或者被误删了,那么你打开文件这那段代码就会出错,但是我们不希望因为出错了而直接把程序挂掉,那么写程序的时候就可以通过try catch来捕获错误进行处理,比如提示用户,文件不存在,请用户确认数据文件等等,然后跳过这段代码。
      

  6.   

    编译错误一般是指java语法的错误,运行错误分两种一种是error还有就是Exception 有的异常是抛出但可继续执行之后的代码,有的异常是无法继续进行的代码如:RuntimeException,ClassCastException,  那么,编译和运行时期最好的理解就是java1.5之后出现的泛型机制,在以前的版本中如果考虑不当,只会在运行时出现异常,现在加了泛型,问题会给你暴露在编译时期,这样就提高了代码的安全性
      

  7.   

    变异错误是jdk自定义的语法检查,如果你的代码有语法错误的话,编译不是会通过的。例如:int a="a";它会出现红色提示,"不能将字符类型赋值给int 类型";
    运行时错误是你的代码逻辑有问题,例如使用了空对象,强制类型转换啊。例如:Long long=new Long("aa");这句代码,编译不会出错,但是当他运行的时候它会产生一个类型转换失败的异常。
      

  8.   

    编译不通是没法生成class可执行文件的。但是运行错误时已经通过编译,生成了class可执行文件,在执行后出现的问题。
      

  9.   

    编译错误是指语法错误。
    运行错误是程序语法没有问题,运行的时候出错。
    修改程序: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