自定义异常与异常用法举例:
package hello;
public class Computer {
public static int count(int m,int n) throws MyException{
if(m<0||n<0){
throw new MyException("不能输入负整数!");
}
int result = 0;
if(m>n){
for(int i=n;i>0;i--){
if(m%i==0&&n%i==0){
result = i;
break;
}
}
}
else{
for(int i=m;i>0;i--){
if(m%i==0&&n%i==0){
result = i;
break;
}
}
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.out.println(count(88*647,23*647));
System.out.println(count(99,66));
System.out.println(count(122,22));
System.out.println(count(17,22));
System.out.println(count(-1,22));
} catch (MyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package hello;
public class MyException extends Exception{
public MyException(String ErrorException){
super(ErrorException);
}
}
异常的内存开销很大,一般用于处理难以预见的错误,并将处理代码与主业务分开。所以要做好异常分类,不要把异常当做逻辑判断来使用。