import java.lang.System; 
import java.lang.NumberFormatException; 
public class TestArgs { 
public static void main(String[] args) { 
    if(args.length<3){ 
            System.out.println(  
              "Usage: java Test \"n1\" \"op\" \"n2\""); 
            System.exit(-1); 
    }  
     
    try { 
        double d1 = Double.parseDouble(args[0]); 
    }catch(NumberFormatException e){ 
      System.out.println("输入的不是数字"); 
    } 
     
    try { 
        double d2 = Double.parseDouble(args[2]); 
    } catch(NumberFormatException e){ 
      System.out.println("输入的不是数字"); 
    } 
     
    double d = 0; 
    if(args[1].equals("+")) d = d1+d2; 
    else if(args[1].equals("-")) d = d1-d2; 
    else if(args[1].equals("x")) d = d1*d2; 
    else if(args[1].equals("/")) d = d1/d2; 
    else{ 
        System.out.println("Error operator!");  
        System.exit(-1); [code=Java]
    }    
    System.out.println(d); 
 } 

[/code]
为什么编译通不过而这个可以通过
import java.lang.System; 
import java.lang.NumberFormatException; 
public class TestArgs { 
public static void main(String[] args) { 
 if(args.length<3){ 
 System.out.println(  
 "Usage: java Test \"n1\" \"op\" \"n2\""); 
 System.exit(-1); 
 }  
  
 try { 
 double d1 = Double.parseDouble(args[0]); 
 double d2 = Double.parseDouble(args[2]); 
 double d = 0; 
 if(args[1].equals("+")) d = d1+d2; 
 else if(args[1].equals("-")) d = d1-d2; 
 else if(args[1].equals("x")) d = d1*d2; 
 else if(args[1].equals("/")) d = d1/d2; 
 else{ 
 System.out.println("Error operator!");  
 System.exit(-1); 
 }  
 System.out.println(d); 
 } catch(NumberFormatException e){ 
 System.out.println("输入的不是数字"); 
 } 
  
  
 } 
}  
这是什么原因 ,try catch到底如何在在合理的程序块

解决方案 »

  1.   

    double d1你放在了try 里面,在外面当然就访问不了了。
    区别就是那个 { } 大括号, 你仔细看看
      

  2.   

    d1,d2,在try里面定义,就是局部变量,只能在里面用,在外面当然就不能用了
      

  3.   

    变量定义的范围问题
    JAVA资料太多?选中想收藏的文字(图片),右键选“收录到易载”,搞定!
      

  4.   


    double d1 = Double.parseDouble(args[0]); 
    double d2 = Double.parseDouble(args[2]); 
     double d = 0;
    定义放在try{}catch()里面,否则就只能在try{}里调用变量d1,d2,d了