Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Try-Catch(Java)中If-Else语句中的变量_Java_If Statement_Try Catch - Fatal编程技术网

如何使用Try-Catch(Java)中If-Else语句中的变量

如何使用Try-Catch(Java)中If-Else语句中的变量,java,if-statement,try-catch,Java,If Statement,Try Catch,如何在Java中使用Try-Catch中if-else语句中的变量 String value1 = "sample"; String value2 = "sample"; int a=0; try { if(value2.equals(value1)) { a = 1; } int b = a; catch (Exception e) { System.out.println("Update Error!"); } int b

如何在Java中使用Try-Catch中if-else语句中的变量

String value1 = "sample"; 
String value2 = "sample";
int a=0;

try 
{

    if(value2.equals(value1))
    {
        a = 1;
    }
     int b = a;

catch (Exception e)
{
    System.out.println("Update Error!");
}

int b中的a=a;有一个错误,表示变量可能尚未初始化。如何使用该变量?

问题是您只在int a行中声明了它;但是,除了在ifvalue2.equalsvalue1块内,从未使用值初始化。但是由于if块中的代码不能确保运行,a可能无法初始化以传递给b。以后声明或赋值时,可以使用0初始化:

int a = 0;

您需要为int变量a指定一些默认值


如果像GMachado所说的那样初始化变量,就不会得到错误,它会在try中将值从“a”传递到“b”。您的代码中还有一个语法错误,在捕获之前缺少一个括号

String value1 = "sample"; 
String value2 = "sample";
int a=0;
try 
{
    if(value2.equals(value1))
    {
        a = 1;
    }
     int b = a;
} // Here!!
catch (Exception e)
{
    System.out.println("Update Error!");
}

异常是在出现问题时抛出的一些东西。您不能简单地期望生成异常。 Java中有很多异常。它们都从异常类继承。IE:ArrayOutOfBoundException,FileNotFoundException

您可以使用throw函数抛出异常


容易引发异常的代码行必须由try/catch包围。这并不意味着一切都应该在try-curly括号内。规则是,每当抛出接收时,try body下的剩余行将被忽略,因为JVM正在寻找捕获。

要么将else{a=}添加到if,要么在其声明处初始化a,比如int a=。没有任何注释有帮助。没有任何注释有帮助可能是因为您没有解释在条件value2.equalsvalue1为false时希望a具有什么值。您的问题不清楚。我认为你缺乏一些关于例外的理论。Integer的默认值为0。BTW equals方法不会引发异常。您是否定义了代码中写入的变量值?就像你写的int a=0;在您的代码中,但根据给定的错误,看起来您编写了int a;在代码中。请重新检查这件事。你是对的,这不会将值传递给b,这并不能真正解决问题。
String value1 = "sample"; 
String value2 = "sample";
int a=0;
try 
{
    if(value2.equals(value1))
    {
        a = 1;
    }
     int b = a;
} // Here!!
catch (Exception e)
{
    System.out.println("Update Error!");
}