Java 如何编写异常(类x抛出y)

Java 如何编写异常(类x抛出y),java,exception,throws,Java,Exception,Throws,我这里有一段代码,它运行了一系列的测试,看看数组中的最后一个元素是否是预期的数字。我必须输入的代码去[??]当前所在的地方 //The answer must be the shortest possible class EmptyArrayException extends RuntimeException{} class ArrayUtil{ public static Object lastElement (Object[]array)[???]{ if(array.le

我这里有一段代码,它运行了一系列的测试,看看数组中的最后一个元素是否是预期的数字。我必须输入的代码去[??]当前所在的地方

   //The answer must be the shortest possible
class EmptyArrayException extends RuntimeException{}
class ArrayUtil{
  public static Object lastElement (Object[]array)[???]{
    if(array.length>0)return array[array.length-1];
    throw new EmptyArrayException();
  }
}
public class Exercise{
  public static void test(){
    assert ArrayUtil.lastElement(new Integer[]{1,2,3}).equals(3);
    assert ArrayUtil.lastElement(new Integer[]{1,2}).equals(2);
    assert ArrayUtil.lastElement(new Integer[]{1}).equals(1);
    assert ArrayUtil.lastElement(new Integer[]{}).equals(1);
    assert false:"Code not reachable";
  }
  public static void main(String [] arg){
    try{ test();}
    catch(Throwable t){/*the test suit
      logs t on the test results: 
      a single place for error logging.*/}
  }
}
我假设我会写“抛出EmptyArrayException”,但这是错误的抛出EmptyArrayException()'也是错误的


那么我应该在[??]空间中放置什么呢?

因为您的异常是
运行时异常
,所以不需要指定任何内容。不管你怎么做。有时我这样做是为了记录这样的方法可能会抛出某个异常

public static Object lastElement (Object[]array) throws EmptyArrayException 

这取决于您。

因为您的异常是
运行时异常
,所以不需要指定任何内容。不管你怎么做。有时我这样做是为了记录这样的方法可能会抛出某个异常

public static Object lastElement (Object[]array) throws EmptyArrayException 

这取决于您。

因为您的异常是
运行时异常
,所以不需要指定任何内容。不管你怎么做。有时我这样做是为了记录这样的方法可能会抛出某个异常

public static Object lastElement (Object[]array) throws EmptyArrayException 

这取决于您。

因为您的异常是
运行时异常
,所以不需要指定任何内容。不管你怎么做。有时我这样做是为了记录这样的方法可能会抛出某个异常

public static Object lastElement (Object[]array) throws EmptyArrayException 


这取决于您。

如果异常类型是
RuntimeException
的子类型,您不需要在
throws
子句中指定它。您所说的错误是什么意思?您是否用
[
]
包围了
抛出EmptyArrayException
抛出EmptyArrayException
是正确的语法。你说的“但这是错的”是什么意思?您是否遇到编译器错误?以尽可能短的时间?没有什么。你不会把任何东西放在那里。如果您没有抛出RuntimeException,则需要一个
throws
子句。如果异常类型是
RuntimeException
的子类型,则不需要在
throws
子句中指定它。错误是什么意思?您是否用
[
]
包围了
抛出EmptyArrayException
抛出EmptyArrayException
是正确的语法。你说的“但这是错的”是什么意思?您是否遇到编译器错误?以尽可能短的时间?没有什么。你不会把任何东西放在那里。如果您没有抛出RuntimeException,则需要一个
throws
子句。如果异常类型是
RuntimeException
的子类型,则不需要在
throws
子句中指定它。错误是什么意思?您是否用
[
]
包围了
抛出EmptyArrayException
抛出EmptyArrayException
是正确的语法。你说的“但这是错的”是什么意思?您是否遇到编译器错误?以尽可能短的时间?没有什么。你不会把任何东西放在那里。如果您没有抛出RuntimeException,则需要一个
throws
子句。如果异常类型是
RuntimeException
的子类型,则不需要在
throws
子句中指定它。错误是什么意思?您是否用
[
]
包围了
抛出EmptyArrayException
抛出EmptyArrayException
是正确的语法。你说的“但这是错的”是什么意思?您是否遇到编译器错误?以尽可能短的时间?没有什么。你不会把任何东西放在那里。如果没有抛出RuntimeException,则需要一个
throws
子句。为什么答案几乎总是简单的?为什么答案几乎总是简单的?为什么答案几乎总是简单的?为什么答案几乎总是简单的?