异常
2016-02-26 09:19
155 查看
Throwable:包含Error 和 Exception。
Error :比较严重的问题 ,系统性问题 (虚拟机出题,系统出现问题)
Exception:程序出现的一些问题,通常是由于程序人员考虑不周等情况 发生的问题
(程序出现的问题,这些问题本省可以避免)
异常分类:
1.运行时异常:不要求强制处理,只有在运行时可能发生异常
2.受检查异常(check):必须处理,不能会不会发生异常
(有些操作 jvm认为可能出现异常几率较大 所以要求强制处理 )
异常处理:
throws:主要针对受检查异常 ,写在方法上,表明该方法具有抛出异常的功能 ,能抛异常根据throws 后面跟的异常类型
( public static void main(String[] args) throws FileNotFoundException )
运行时异常不需要 throws 标明具有抛异常的功能
抛出:
1.jdk抛出:FileInputStream fis=new FileInputStream("D:/11.txt");
异常由jdk抛出来 逐级向上抛出 最后如果main也没处理 那么就抛给虚拟机,虚拟机接受异常 立即停止执行
2.人为抛出:throw 抛异常
throw new Exception("除数不能为0");
捕获:try {} catch (Exception e) {} catch (Exception e) {} finally{}
catch捕获异常 针对 try中的代码块,catch在捕获的时候只能捕获参数指定的异常,如果异常被捕获,那么不在向下捕获,跳出捕获模块,执行try catch模块下面的语句
try中产生异常,try中后面代码不在运行
finally:不能try中代码有木有异常 都会执行,除非强制退出JVM
一般 catch (Exception e) {} 放在catch模块的最后位置
一般不建议使用 try {try {} catch (Exception e) {} } catch (Exception e) {} ,try catch嵌套,
建议大家采用try {} catch (Exception e) {} catch (Exception e) {}
catch中不建议编写业务代逻辑码 try中代码要尽量少
//非常不建议,不够规范
// try {
// int n=i/j;
// }finally{
// System.out.println("--finally--");
// }
自定义异常:
1、能够更好的查找程序的错误
2、让异常信息更友好
***异常能够改变程序执行的流程
***提供程序出错的解决方式之一
异常分为两大类:
Error + Exception(RuntimeException+受检查异常/编译期异常)
java程序写成的文件叫java源代码文件(.java)-->编译,字节码文件(后缀名是.class)-->运行,JVM
异常的五个关键字try{可能产生异常的代码} catch(异常类型 参数名){打印异常信息} finally{强制执行的代码,一般包括释放资源等}
try如果不紧跟这catch语句,则必须添加finally语句
try语句后续可以接多个catch语句,如果包含多个catch语句块,需要先写子类异常,再写父类异常
throws:抛出异常:方法名 throws 异常类型名称
throw:抛出一个具体的异常 ,写法:方法体内throw 一个具体的异常对象;
面试笔试必考题:写出不少于5个的常见异常
ClassCastException:类型转换异常
NullPointerException:空指针异常
ArithmeticException:数学异常
IndexOutOfBoundsException:索引越界异常
IllegalArgumentException:参数异常
FileNotFoundException:文件没有找到异常
ClassNotFoundException:没有找到类异常
Error :比较严重的问题 ,系统性问题 (虚拟机出题,系统出现问题)
Exception:程序出现的一些问题,通常是由于程序人员考虑不周等情况 发生的问题
(程序出现的问题,这些问题本省可以避免)
异常分类:
1.运行时异常:不要求强制处理,只有在运行时可能发生异常
2.受检查异常(check):必须处理,不能会不会发生异常
(有些操作 jvm认为可能出现异常几率较大 所以要求强制处理 )
异常处理:
throws:主要针对受检查异常 ,写在方法上,表明该方法具有抛出异常的功能 ,能抛异常根据throws 后面跟的异常类型
( public static void main(String[] args) throws FileNotFoundException )
运行时异常不需要 throws 标明具有抛异常的功能
抛出:
1.jdk抛出:FileInputStream fis=new FileInputStream("D:/11.txt");
异常由jdk抛出来 逐级向上抛出 最后如果main也没处理 那么就抛给虚拟机,虚拟机接受异常 立即停止执行
2.人为抛出:throw 抛异常
throw new Exception("除数不能为0");
捕获:try {} catch (Exception e) {} catch (Exception e) {} finally{}
catch捕获异常 针对 try中的代码块,catch在捕获的时候只能捕获参数指定的异常,如果异常被捕获,那么不在向下捕获,跳出捕获模块,执行try catch模块下面的语句
try中产生异常,try中后面代码不在运行
finally:不能try中代码有木有异常 都会执行,除非强制退出JVM
一般 catch (Exception e) {} 放在catch模块的最后位置
一般不建议使用 try {try {} catch (Exception e) {} } catch (Exception e) {} ,try catch嵌套,
建议大家采用try {} catch (Exception e) {} catch (Exception e) {}
catch中不建议编写业务代逻辑码 try中代码要尽量少
//非常不建议,不够规范
// try {
// int n=i/j;
// }finally{
// System.out.println("--finally--");
// }
自定义异常:
1、能够更好的查找程序的错误
2、让异常信息更友好
***异常能够改变程序执行的流程
***提供程序出错的解决方式之一
异常分为两大类:
Error + Exception(RuntimeException+受检查异常/编译期异常)
java程序写成的文件叫java源代码文件(.java)-->编译,字节码文件(后缀名是.class)-->运行,JVM
异常的五个关键字try{可能产生异常的代码} catch(异常类型 参数名){打印异常信息} finally{强制执行的代码,一般包括释放资源等}
try如果不紧跟这catch语句,则必须添加finally语句
try语句后续可以接多个catch语句,如果包含多个catch语句块,需要先写子类异常,再写父类异常
throws:抛出异常:方法名 throws 异常类型名称
throw:抛出一个具体的异常 ,写法:方法体内throw 一个具体的异常对象;
面试笔试必考题:写出不少于5个的常见异常
ClassCastException:类型转换异常
NullPointerException:空指针异常
ArithmeticException:数学异常
IndexOutOfBoundsException:索引越界异常
IllegalArgumentException:参数异常
FileNotFoundException:文件没有找到异常
ClassNotFoundException:没有找到类异常
相关文章推荐
- http状态码大全
- C#精髓 第四讲 GridView 72般绝技
- java环境变量配置
- cc.ResolutionPolicy.SHOW_ALL
- 判断两个链表是否相交
- 枚举
- 提高批量插入数据的方法
- 解决问题:The context cannot be used while the model is being created
- C#双缓冲实现方法(可防止闪屏)
- 大型分布式网站架构技术总结
- kidd风的IOS日志之常用代码片段小结
- Servlet_07_Servlet细节
- Acdream1084 寒假安排 求n!中v因子个数
- Backbone的一个demo
- 【转】在线画流程图的工具
- 2016.2.26 工作笔记
- java集合类——Stack类
- ubuntu14安装redis
- 学IT看教程的学习网站
- 豆瓣回帖