java异常处理机制示例(java抛出异常、捕获、断言)
这是一个介绍基本异常处理的小例子,包括抛出,捕获,断言,日志。
java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。
package com.hongyuan.test;
import java.io.ioexception;
import java.util.logging.level;
import java.util.logging.logger;
public class exceptionhandletest {
static{
//开启断言,此后由系统类加载器加载的类将启用断言。
classloader.getsystemclassloader().setdefaultassertionstatus(true);
}
public static void main(string[] args) {
/*
* 抛出,捕获
*/
try {
trycatchtest.run(10, -1);
} catch (ioexception e) {
e.printstacktrace();
}
system.out.println("====================================================");
//日志
logertest.run();
system.out.println("====================================================");
//断言
asserttest.div(3,0);
}
}
/*
* 断言
*/
class asserttest {
public static double div(int b,int a){
assert a!=0:"你这么用,你小学老师知道吗?";
return (double)b/a;
}
}
/*
* 日志
*/
class logertest {
private static logger logger=null;
static{
//获取日志对象并定义日志级别
logger=logger.getlogger(logertest.class.getname());
logger.setlevel(level.all);
}
public static void run(){
//进入方法
logger.entering(logertest.class.getname(), "run");
//普通信息
logger.info("又来找我麻烦,这笔账我记下了!!!");
//警告
logger.warning("太累了,这活没法干了!!!");
//严重
logger.log(level.severe,"老子不干了!!! ^o^");
//退出方法
logger.exiting(logertest.class.getname(), "run");
}
}
/*
* 捕获,抛出
*/
class trycatchtest {
public static void run(int x,int y) throws ioexception {
try{//必须
if(x<0||y<0){
throw new illegalargumentexception("无语了,这让我怎么办啊!!!");
}
}catch(exception e){//可选
ioexception e1=new ioexception("你自己看着办吧!");
e1.initcause(e.getcause());
throw e1;
}finally{//可选
system.out.println("最后他们过上了幸福的生活!!!!(完)");
}
}
}