异常处理

先从键盘输入一个十六进制数,再将其转化为十进制数,然后输出。若输入的不是一个有效的十六进制数,则抛出异常。

package 第七章;
import java.util.Scanner; 
/*
File name:homework1.cpp
Author:yangliu
Date:2017/11/14
IDE:eclipse
describe:Java异常处理
*/
class homework1{
	public static void main(String[] arge) {
		System.out.println("请输入一个十六进制数");
		Scanner cs=new Scanner(System.in);
		String S=cs.next();
		exchange ex=new exchange(S);
		try {
			ex.Change16To10();
		}
		catch(MyException e)
		{
			e.printcount();
		}
	}
}


class exchange{  
String s;  
private int y;  
exchange(String s){
this.s=s;
} 
int getY(){
return y;
}  
void setY(int y){
this.y=y;
}  
//进制转换
void Change16To10()  {  
int y=0;  
int i,k;  
for(i=0;i<s.length();i++)  {  
 k=Change(s.charAt(i));  //字符转换成整数数字
 y+=k*Math.pow(16,s.length()-(i+1));  
}  
System.out.println(y); 
System.out.println("成功转换");  
}  
//将一个字符型数字转化成整型数字  
int Change(char h)  { 
  int x; 
 switch(h)  
   {  
   case'0': x=0;  break;  
   case'1': x=1; break; 
   case'2': x=2;  break;  
   case'3':  x=3; break; 
   case'4': x=4; break;  
   case'5': x=5; break;  
   case'6': x=6; break; 
   case'7': x=7; break;  
   case'8': x=8; break; 
   case'9': x=9; break;
   case'A':
   case'a': x=10; break;  
   case'B':
   case'b': x=11; break; 
   case'C':
   case'c': x=12; break; 
   case'D':
   case'd': x=13; break;
   case'E':
   case'e': x=14; break;
   case'F':
   case'f': x=15; break; 
   default: 
	   throw new MyException(); 
   }
       return x; 
 
} 
}
class MyException extends RuntimeException { 
  public MyException() {}
  public MyException(String msg){ 
  super(msg);  
}  
   public void printcount() {
	  System.out.println("十六进制数输入不正确");
	
	
   }
 }

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值