Java异常机制1之认识异常与处理
首先介绍一下什么是异常:在写程序时,当程序执行到一半时发生错误。有需要处理和不需要处理的,比如说线程睡眠时发生的异常是需要处理的。接下来来介绍一下处理异常和捕获异常的两种方式:
第一种,直接在方法上抛出异常
先编写如下接口
@SuppressWarnings("all")
public interface ExceptionDemo extends BaseUtils
{
/**
* 数学计算异常,如除数为0则计算结果为无穷大,在程序中并没有无穷大,所以抛出异常
*/
class MathException extends Exception implements BaseUtils
{
public MathException()
{
info("数字计算异常");
}
}
/**
* 检查对象是否为空
*
* @param object
* @return
*/
static Integer checkObj(Object... object)
{
return (object != null) ? 1 : 0;
}
/**
* 对两数进行相除
*
* @param numA
* @param numB
* @return
* @throws MathException
* @throws ObjectNotFoundException
*/
static Integer calcNumbers(Integer numA, Integer numB)
throws MathException, ObjectNotFoundException
{
int result = 0;
if (checkObj(numA, numB) == 1)
{
if (numA == 0 || numB == 0)
{
throw new MathException();
}
result = numA / numB;
}
else
{
throw new ObjectNotFoundException("数字找不到");
}
return result;
}
}
测试类方法:
@Test
public void calcTest1() throws Exception
{
info(calcNumbers(100, 20));
}
运行结果为
org.eclipse.java8.tools.BaseUtils.info(BaseUtils.java:37) 5=============== org.eclipse.java8.tools.BaseUtils.info(BaseUtils.java:37) 程序运行时间为14毫秒===============
==这是第一种处理异常的方式,接下来介绍第二种
@Test
public void calcTest2()
{
try
{
info(calcNumbers(100, 20));
}
catch (MathException e)
{
e.printStackTrace();
}
catch (ObjectNotFoundException e)
{
e.printStackTrace();
}
}
这就是处理异常和抛异常的方式