在Java中引发简单异常

在Java中引发简单异常,java,exception,Java,Exception,我想学习如何在java中抛出一个超级简单的异常。我有以下资料: public Percolation(int N) // create N-by-N grid, with all sites blocked { if(N < 1) throw new Exception("N must be greater than zero."); grid = new boolean[N * N + 2]; dimension = N; grid[0]

我想学习如何在java中抛出一个超级简单的异常。我有以下资料:

public Percolation(int N) // create N-by-N grid, with all sites blocked
{
    if(N < 1)
        throw new Exception("N must be greater than zero.");

    grid = new boolean[N * N + 2];
    dimension = N;
    grid[0] = true;
    grid[N+1] = true;       
    unionStruct = new QuickFindUF(N+2);
}

这不是编译,但这正是我想要做的事情。执行此操作的正确语法是什么?

您必须声明构造函数引发异常

public Percolation(int N) throws Exception {} //create N-by-N grid, with all sites blocked 

您必须声明构造函数引发异常

public Percolation(int N) throws Exception {} //create N-by-N grid, with all sites blocked 

我怀疑您没有指定正在抛出异常。告诉我们你犯了什么错误

同时,尝试以下方法:

    public Percolation(int N) throws Exception
{
    if(N < 1)
        throw new Exception("N must be greater than zero.");
    ...
Java中有两种类型的异常:

编译器强制执行的异常检查异常。 运行时异常未检查的异常。 抛出一个未检查的异常,或者指定抛出您的异常,就像我在上面的代码中所做的那样


在这种情况下,您正在查找的未经检查的异常将是IllegalArgumentException。

我怀疑您没有指定正在引发异常。告诉我们你犯了什么错误

同时,尝试以下方法:

    public Percolation(int N) throws Exception
{
    if(N < 1)
        throw new Exception("N must be greater than zero.");
    ...
Java中有两种类型的异常:

编译器强制执行的异常检查异常。 运行时异常未检查的异常。 抛出一个未检查的异常,或者指定抛出您的异常,就像我在上面的代码中所做的那样


在这种情况下,您要查找的未检查异常将是IllegalArgumentException。

这是因为您正在抛出一个选中的异常,而没有声明要抛出的异常。在您的情况下,您可能应该抛出一个从RuntimeException派生的异常,而这些异常没有被检查,这意味着您不必声明它们。所以解决这个问题的两种方法是

throw new IllegalArgumentException("N must be greater than zero."); // unchecked


这是因为您正在抛出一个选中的异常,而没有声明要抛出的异常。在您的情况下,您可能应该抛出一个从RuntimeException派生的异常,而这些异常没有被检查,这意味着您不必声明它们。所以解决这个问题的两种方法是

throw new IllegalArgumentException("N must be greater than zero."); // unchecked


当写这样的问题时,你应该说明你收到的错误是什么。介绍Java异常的每一本书或文档都提到,函数必须声明要抛出的已检查异常。阅读有关已检查和未检查异常的文档。此外,养成告诉别人你犯了什么错误的习惯。告诉人们它不是编译,而不告诉他们编译器告诉你什么错误,这是无礼的。人们不会读心术,也不能用心灵感应的方式看你的显示器。写这样的问题时,你应该说明你收到的错误是什么。真的,阅读JSL。介绍Java异常的每一本书或文档都提到,函数必须声明要抛出的已检查异常。阅读有关已检查和未检查异常的文档。此外,养成告诉别人你犯了什么错误的习惯。告诉人们它不是编译,而不告诉他们编译器告诉你什么错误,这是无礼的。人们不能读心术,也不能用心灵感应的方式看你的显示器。