/**
*自定义异常类
*toString()方法就是吧对象转换成String类型
*throw和throws是两个不同的关键字,throws用来声明要产生的若干个异常,throw是抛出某个异常,catch用来捕获throw抛出的异常
*throws后面的方法体中有相应的方法来显示异常信息
*自定义的异常类必须是Exception的子类,两者之间是继承的关系
*异常处理将会改变程序的控制流程,但是书上的例子也太简单,对于异常处理的特性并不是那么明显
**/
//自定义异常类
class NopositiveExceptionclass extends Exception {
String message;
//构造函数,提示错误的信息
NopositiveExceptionclass(int m,int n){
message="数字"+m+"或"+n+"不是整数";
}
public String toString(){
return message;
}
}
//求最大公约数的类
class Computer{
public int getMaxCommonDivisor(int m,int n) throws NopositiveExceptionclass{
if(n<=0||m<=0){
NopositiveExceptionclass exception=new NopositiveExceptionclass(m,n);
throw exception;
}
if(m<n){
int temp=0;
temp=m;
m=n;
n=temp;
}
int r=m%n;
while(r!=0){
m=n;
n=r;
r=m%n;
}
return n;
}
}
//主类
public class NopositiveException{
public static void main(String[] args){
int m=24,n=36,result=0;
Computer a=new Computer();
try{
result=a.getMaxCommonDivisor(m, n);
System.out.println(m+"和"+n+"的最大公约数是:"+result);
m=-12;
n=22;
result=a.getMaxCommonDivisor(m, n);
System.out.println(m+"和"+n+"的最大公约数是:"+result);
}
catch(NopositiveExceptionclass e){
System.out.println(e.toString());
}
}
}
java异常处理
最新推荐文章于 2021-12-04 22:18:28 发布