A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵哲成 中级黑马   /  2014-8-24 22:20  /  2560 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class FuShuException extends Exception
{
        FuShuException(String msg)
        {
                super(msg);
        }
}
class Demo
{
        int div(int a,int b) throws  FuShuException
        {
                if(b<0)
                        throw new FuShuException("除数为负数");               
                if(b==0)
                        throw new ArithmeticException("零被除了");
                return a/b;
        }
}
class  ExceptionDemo
{
        public static void main(String[] args)
        {
                Demo d = new Demo();
                try
                {
                        int x = d.div(4,-1);
                        System.out.println(x);
                }
                catch(FuShuException e)
                {
                        System.out.println(e.toString());
                }
                finally
                {
                        System.out.println("finally");//存放一定会被执行的代码
                }
                System.out.println("over");
        }
       
}




数据库Exception

public void method() throws NoException
{
        try
        {
                连接数据库;
                数据库操作;
        }
        catch(SQLException e)
        {
                对数据库进行异常处理;
                throw new NoException();
        }
        fianlly
        {
                关闭数据库;
        }
}




try
{
        throw new Exception();
}
fianlly
{
        关闭资源;
}


1.子类在覆盖父类时,如果父类方法跑出异常,子类方法覆盖,只能抛出父类异常或该异常的子类











异常总结

Throwable
        |-->Error
        |-->Eeception
                |-->RuntimeEeception
       
       
当函数内容有throw抛出异常,并未进行try处理,必须要在函数上声明,都在编译失败。
注意:runtimeException除外,
如果函数声明异常,调用者需要进行处理,处理方法可throw可try
异常有两种
        编译时被检测的异常
                该异常在编译时,如果没有处理,编译失败
                该异常被标示,代表可以被处理。
        运行时异常(编译时不检测)
                在编译时,不需要处理,编译器不检查。
                该异常的发生,建议不处理,让程序停止,需要对代码进行修正。

fianlly只有System.exit(0);时不会执行

自定义异常
        定义类继承Eeception或者RuntimeEeception
        1,为了让该自定义类具备可抛性,
        2,让该类具备异常方法处理的,
       
自定义异常,按照java的面向对象思想,将程序中出现的特有问题进行封装
throw  单独存在,下面不要定义语句

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1 赞一个!

查看全部评分

8 个回复

倒序浏览
感谢分享
回复 使用道具 举报
谢谢分享...
回复 使用道具 举报
怎么卡住了啊
回复 使用道具 举报
很不错!
回复 使用道具 举报
学习中。。。
回复 使用道具 举报
感谢分享
回复 使用道具 举报
总结的好啊,谢谢分享
回复 使用道具 举报
可以在方法体上写异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马