在 throw Exception 中发现错误

finding error in throw Exception

我从我的代码中收到此错误,似乎无法找到解决方案。这是我第一次处理 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 的基本理解,但为了编译您当前的代码,您应该按如下方式重写。注意 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");
  }
}

正如 moonlighter 所建议的,问题出在 "throw"- 关键字上。 "throw" 告诉 java 立即抛出异常,这不能在方法签名中完成(因此语法错误)。另一方面,"throws" 标记了一个可能会抛出异常的方法。

另一件好事是缩进代码。这提高了您和可能帮助您的人的可读性。