package pack1;
public class HexFormatException extends Exception{
public HexFormatException() {
}
public HexFormatException(String message) {
super(message);
}
@Override
public String getMessage() {
return super.getMessage();
}
}
package pack1;
import java.util.Scanner;
public class TestHexFormatException {
public static void main(String[] args) throws HexFormatException {
try(Scanner input = new Scanner(System.in);) {
try {
System.out.print("Enter a hex string: ");
System.out.println("The decimal of hex string that you enter is " + hecToDec(input.next()));
}catch (HexFormatException e) {
System.out.println(e.getMessage());
}
}
}
/**十六进制转换为十进制*/
public static int hecToDec(String hexString) throws HexFormatException {
try {
int integer = Integer.parseInt(hexString);
if (integer < 0 || integer > 9) //数字错误时,抛出异常
throw new HexFormatException("Error hex string");
return integer;
} catch (java.lang.NumberFormatException e) {
switch (hexString) {
case "A":
return 10;
case "B":
return 11;
case "C":
return 12;
case "D":
return 13;
case "E":
return 14;
case "F":
return 15; //非指定字符时抛出异常
default:
throw new HexFormatException("Error hex string");
}
}
}
}