在throw异常中查找错误

问题描述 投票:-1回答:2

我从我的代码收到此错误,似乎无法找到解决方案。这是我第一次在java中处理抛出异常。任何帮助表示赞赏!

C:\Users\acer\Documents\MyFinal3.java:5: error: ';' expected
static void exceptionFinal() throw RuntimeException();{

1错误

import java.io.*;
import java.util.*;
public class MyFinal3
{
static void exceptionFinal() throw RuntimeException eE{
System.out.println("Inside exceptionFinal");
throw RuntimeException();
}



public static void main(String []args)
{
double myDouble[] = new double[5];
try {
exceptionFinal();
System.out.println("Access element sixth :" +
myDouble[6]);
}
catch (RuntimeException eE) {
System.out.println("Exception thrown: 1");
}
catch (Exception eE) {
System.out.println("Exception thrown: 2");
}
catch (ArrayIndexOutOfBoundsException eE) {
System.out.println("Exception thrown: 3" );
}
finally {
System.out.println("Exception end" );
}
System.out.println("Out of the block");
}
}
java exception-handling throw
2个回答
0
投票

你的代码有多个问题,肯定表明缺乏对java的基本理解,但为了编译你当前的代码,你应该按如下方式重写它。注意throw和throws使用的差异。作为评论之一,请查看Difference between throw and throws in Java?

import java.io.*;
import java.util.*;

public class MyFinal3 {

  static void exceptionFinal() throws RuntimeException {
    System.out.println("Inside exceptionFinal");
    throw new RuntimeException();
  }

  public static void main(String[] args) {
    double myDouble[] = new double[5];
    try {
      exceptionFinal();
      System.out.println("Access element sixth :" + myDouble[6]);
    } catch (RuntimeException eE) {
      System.out.println("Exception thrown: 1");
    } catch (Exception eE) {
      System.out.println("Exception thrown: 2");
    }

    finally {
      System.out.println("Exception end");
    }
    System.out.println("Out of the block");
  }
}

0
投票

正如月光者所说,问题出在“投掷”关键词上。 “throw”告诉java立即抛出异常,这在方法签名中无法完成(因此语法错误)。另一方面,“throws”标记可能抛出异常的方法。

另一个好处是缩进你的代码。这可以提高您和可能对您有帮助的人的可读性。

© www.soinside.com 2019 - 2024. All rights reserved.