我四处寻找,但不知道该怎么做
public class NoUserException extends Exception {
public NoUserException(int id, Throwable cause){
super("User" +id + " not found");
}
}
public class User {
public int getUserID(int id) throws NoUserException{
try{
throw new NoSuchUserException(id, throw ArrayIndexOutOfBoundsException here);
} catch (ArrayIndexOutOfBoundsException e) {
}
return id;
}
}
如何将ArrayIndexOutOfBoundsException
传递给构造函数?我真的不知道该怎么做。
答案 0 :(得分:1)
查看异常中的构造函数 - 将原因引入超类的构造函数Exception:
public class FooException extends Exception
{
public FooException( int id, Throwable cause )
{
super( "user " + id + " not found", cause );
}
}
在您的代码中,您可以像这样使用:
public void method( int id ) throws FooException
{
try
{
someMethodThatThrows();
}
catch ( ArrayIndexOutOfBoundsException e )
{
throw new FooException( id, e );
}
}
private void someMethodThatThrows()
{
throw new ArrayIndexOutOfBoundsException();
}
try块“查看”抛出的每个Exception,如果它是ArrayIndexOutOfBoundsException
,它会跳转到catch块 - 在那里你可以抛出自己的异常ArrayIndexOutOfBoundsException
作为原因。
答案 1 :(得分:0)
抛出新的NoSuchUserException(id,new ArrayIndexOutOfBoundsException());
你的意思是?