package com.net.xinfang.reflect;
import java.io.IOException;
import java.util.Scanner;
/***
* 运行try块有异常抛出转到catch块,执行完catch后再执行finally块
* 运行try块没有异常抛出,也要执行finally块
* @author xinfang
*
*/
public class MyException implements Runnable {
@Override
public void run() throws NullPointerException {
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
System.out.println("请输入被除数:");
try {
int num1 = input.nextInt();
System.out.println("请输入除数:");
int num2 = input.nextInt();
if(num1>6 || num2>6){
throw new deException("您输入的是"+num1+","+num2+"大于6不能进行计算");
}
System.out.println(String.format("%d / %d = %d", num1, num2, num1 / num2));
}catch (Exception e) {
System.err.println("出现错误:被除数和除数必须是整数," + "除数不能为零。");
System.out.println(e.getMessage());
// e.printStackTrace();
}
finally {
System.out.println("finally");
}
}
public static void main(String args[]) throws IOException {
try {
MyException me = new MyException();
new Thread(me).start();
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
}
finally{
}
}
}
/***
* 自定义异常类
* @author xinfang
*
*/
class deException extends Exception
{
private String msg;
private static final long serialVersionUID = 1L;
public deException(String msg)
{
super(msg);
this.setMsg(msg);
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}