java中的异常
我写了一个检查各种条件的代码 如果它符合条件,它会做它应该做的,否则我希望它抛出一个 例外 有什么特殊的语法吗?否则编译器要我返回任何数组, 因为先决条件,我不想这么做 以下是我的部分代码:java中的异常,java,exception-handling,throw,Java,Exception Handling,Throw,我写了一个检查各种条件的代码 如果它符合条件,它会做它应该做的,否则我希望它抛出一个 例外 有什么特殊的语法吗?否则编译器要我返回任何数组, 因为先决条件,我不想这么做 以下是我的部分代码: public static int [] code(int[]arr){ if ((arr!=null)&&(chack4and5(arr))&&(arr[arr.length-1]!=4)&&(TwoFours(arr))){ int
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");
}
}
公共静态int[]code(int[]arr){
如果((arr!=null)&&(chack4and5(arr))&&&(arr[arr.length-1]!=4)&&(two-fours(arr))){
int k=0;
对于(int i=0;i你可以自己抛出一个异常。也许最好的方法是定义一个自定义异常,然后抛出它。如果你不想这样做,请使用IllegalArgumentException
下面是一个自定义异常的示例:
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 {
throw new MyException("No legal array");
}
}
}
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
你可以自己抛出一个异常。也许最好的方法是定义一个自定义异常,然后抛出它。如果你不想这样做,请使用IllegalArgumentException
下面是一个自定义异常的示例:
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 {
throw new MyException("No legal array");
}
}
}
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
是一个RuntimeException
,这意味着某些参数与预期不符。由于这是一个未检查的异常,因此不会强制调用方以任何方式处理它(与检查的异常相反)
是一个RuntimeException
,这意味着某些参数与预期不符。由于这是一个未检查的异常,因此不会强制调用方以任何方式处理它(与已检查的异常相反)如果异常是关于您的参数的某些内容非法,则抛出:
如果例外情况是有关参数的某些内容是非法的,则抛出:
你可能想看看
要抛出异常,请使用throw
关键字
要标记方法可能引发异常,请使用throws
关键字,如
public static void foo() throws SomeException
你可能想看看
要抛出异常,请使用throw
关键字
要标记方法可能引发异常,请使用throws
关键字,如
public static void foo() throws SomeException
抛出异常的方法是
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;
if(arr==null | | |!chack4and5(arr)| | arr[arr.length-1]==4 | | |!TwoFours(arr)){
抛出新的IllegalArgumentException(
“请输入符合先决条件的合法数组”);
}
int k=0;
对于(inti=0;i,抛出异常的方法是
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;
if(arr==null | | |!chack4and5(arr)| | arr[arr.length-1]==4 | | |!TwoFours(arr)){
抛出新的IllegalArgumentException(
“请输入符合先决条件的合法数组”);
}
int k=0;
对于(inti=0;i您可以使用此行抛出异常
throw new SomeKindOfException("Exception description"); // or any other exception, also yours...
但您需要在方法声明中指定:
public static int [] code(int[]arr) throws SomeKindOfException{
有关更多信息,请参见。您可以使用此行引发异常
throw new SomeKindOfException("Exception description"); // or any other exception, also yours...
但您需要在方法声明中指定:
public static int [] code(int[]arr) throws SomeKindOfException{
查看了解更多信息我会犹豫是否将其设置为选中的异常。a是的。这是真的。忘记了这一点。我会犹豫是否将其设置为选中的异常。a是的。这是真的。忘记了这一点。我永远不会将前提提取到单独的方法中,因为我认为只需向上滚动查看参数如何更方便条件化。你应该用注释将其分开。至少我是这样做的。我永远不会将前提条件提取到单独的方法中,因为我认为向上滚动查看参数是如何条件化的更方便。你应该用注释将其分开。至少我是这样做的。