Java异常1

来源:互联网 发布:无人机编队飞行软件 编辑:程序博客网 时间:2024/05/16 04:59

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();        }    }

这就是处理异常和抛异常的方式

0 0