我写了一个代码来检查各种条件。
如果它满足条件它会做它应该做的事情,否则我希望它抛出一个 异常。
有什么特殊的语法吗?否则编译器要我返回任何数组, 由于前提条件,我不想这样做。
这是我的部分代码:
public static int [] code(int[]arr){
if ((arr!=null)&&(chack4and5(arr))&&(arr[arr.length-1]!=4)&&(TwoFours(arr))){
int k=0;
for(int i = 0; i<=arr.length-1; i++){
if (arr[i] == 4){
int place= pos(arr,k);
arr[place]=arr[i+1];
arr[i+1]=5;
k=k+3;
}
}
return arr;
}
else {
System.out.println("Please enter a legal array which matches the pre- conditions");
}
}
最佳答案
抛出异常的方式是
throw new IllegalArgumentException(
"Please enter a legal array which matches the pre- conditions");
IllegalArgumentException
是适合当前情况的Java运行时异常,当然你也可以选择其他的,或者自己创建使用自己的类型。唯一的限制是它必须是 java.lang.Exception
的子类。
我会重新安排您的代码,但首先要检查先决条件,然后在一切正常的情况下继续 - 我发现这更具可读性:
if (arr == null || !chack4and5(arr) || arr[arr.length-1] == 4 || !TwoFours(arr)) {
throw new IllegalArgumentException(
"Please enter a legal array which matches the pre- conditions");
}
int k=0;
for(int i = 0; i<=arr.length-1; i++){
if (arr[i] == 4){
int place= pos(arr,k);
arr[place]=arr[i+1];
arr[i+1]=5;
k=k+3;
}
}
return arr;
(事实上,我什至更愿意将前提条件检查提取到一个单独的方法中——但我把这个留给你了。)
关于java - java中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5492952/