黑马程序员-----java异常总结*

原创 2013年12月02日 22:51:12

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

Java异常的基础知识
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。
有些异常需要做处理,有些则不需要捕获处理,后面会详细讲到。
天有不测风云,人有旦夕祸福,Java的程序代码也如此。在编程过程中,首先应当尽可能去避免错误和异常发生,对于不可避免、不可预测的情况则在考虑异常发生时如何处理。
Java中的异常用对象来表示。Java对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个类型(class),每个异常都对应一个异常(类的)对象。
异常类从哪里来?有两个来源,一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常。Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。
异常的对象从哪里来呢?有两个来源,一是Java运行时环境自动抛出系统生成的异常,而不管你是否愿意捕获和处理,它总要被抛出!比如除数为0的异常。二是程序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw 关键字抛出异常,这种异常常用来向调用者汇报异常的一些信息。
异常是针对方法来说的,抛出、声明抛出、捕获和处理异常都是在方法中进行的。
Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在Java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。finally语句块会在方法执行return之前执行,一般结构如下:
try{
程序代码
}catch(异常类型1 异常的变量名1){
程序代码
}catch(异常类型2 异常的变量名2){
程序代码
}finally{
程序代码
}
catch语句可以有多个,用来匹配多个异常,匹配上多个中一个后,执行catch语句块时候仅仅执行匹配上的异常。catch的类型是Java语言中定义的或者程序员自己定义的,表示代码抛出异常的类型,异常的变量名表示抛出异常的对象的引用,如果catch捕获并匹配上了该异常,那么就可以直接用这个异常变量名,此时该异常变量名指向所匹配的异常,并且在catch代码块中可以直接引用。这一点非常非常的特殊和重要!
Java异常处理的目的是提高程序的健壮性,你可以在catch和finally代码块中给程序一个修正机会,使得程序不因异常而终止或者流程发生以外的改变。同时,通过获取Java异常信息,也为程序的开发维护提供了方便,一般通过异常信息就很快就能找到出现异常的问题(代码)所在。
Java异常处理是Java语言的一大特色,也是个难点,掌握异常处理可以让写的代码更健壮和易于维护。

一、异常

异常的来源:

第一种是java本身定义的一些基本异常类型;第二种是自定义异常

自定义的目的:

为了便于程序的维护,当出现问题时可以立马知道问题在哪

处理异常的目的:

第一是增强程序的健壮性,使程序不轻易因异常而终止;

第二是为了便于维护,通过异常信息可以找到问题之所在


1、Throwable 类是 Java 语言中所有错误或异常的超类。

2、细化异常的类型,不要不管什么类型的异常都写成Excetpion。
3、catch块尽量保持一个块捕获一类异常,不要忽略捕获的异常,捕获到后要么处理,要么转译,要么重新抛出新类型的异常。
4、不要把自己能处理的异常抛给别人。
5、不要用try...catch参与控制程序流程,异常控制的根本目的是处理程序的非正常情况。



---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net

黑马程序员—— java中异常总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 因为在项目中会出现特有的问题,而这些问题并未被java所描述并封装对象,所以对于这些特有的问题 ...
  • h4697028
  • h4697028
  • 2015年02月28日 15:11
  • 181

黑马程序员--一段给后者的面试总结

文章来源:黑马程序员, 北京之旅,行北京万事,通百姓生活。其实,我也是个农村出来的孩子,大学没毕业就来北京参加“黑马”,毕业之后,还是没有任何的机遇与机会让我能在那里一展雄威,这就是我们这些菜鸟的悲...
  • heima_hb6
  • heima_hb6
  • 2014年08月24日 13:51
  • 557

Java中异常的总结

转自:http://blog.csdn.net/hguisu/article/details/6155636根据上面的层次图,异常类包括Error和Exception两大类 Error类异常主要是运...
  • zjwcdd
  • zjwcdd
  • 2016年05月26日 16:33
  • 958

Java常见的异常总结

作为一个程序员了解异常和总结异常还是一件很重要的事情。 NullPointerException 空指针异常类 ClassCastException 类型强制转换异常 ...
  • jbjwpzyl3611421
  • jbjwpzyl3611421
  • 2015年09月29日 11:20
  • 792

黑马程序员--刚学完集合,也看了一些资料,做个总结,

Java中的集合对象常用的分为3类:List、Set和Map。 Java集合中的List和Set都是Collection子接口,包含了集合中通常需要有的操作:     添加元素:add/a...
  • Cris6900
  • Cris6900
  • 2015年06月23日 19:58
  • 223

[黑马程序员]TreeMap练习

/*练习 * "asdfasxvadfafasdfuoaiewqr789asdfasf" 获取该字符串中的字母出现的次数 * * 希望打印结果: a(1)b(2)... * * 希望通过...
  • tomlucky001
  • tomlucky001
  • 2014年04月07日 14:22
  • 372

黑马程序员——Map集合总结

Java培训、Android培训、iOS培训、.Net培训、期待与您交流! Map集合:该集合存储键值对,一对一对的往里存,并且要保证键的唯一性。 Map中的方法:     1.添加:  ...
  • h4697028
  • h4697028
  • 2015年03月01日 18:04
  • 155

黑马程序员----------java基础加强之hashSet总结

----------------------android培训、java培训、期待与您交流! ----------------------     关于Set接口下的hashSet总结。...
  • zixue793938813
  • zixue793938813
  • 2014年05月19日 00:16
  • 231

黑马程序员-集合的总结

------- android培训、java培训、期待与您交流! ---------- Collection |--List |--ArrayList 底层数据结构是数组,查询快,增删...
  • skyboyk
  • skyboyk
  • 2013年08月27日 12:31
  • 369

java异常处理学习总结

Java异常的栈轨迹(Stack Trace)     捕获到异常时,往往需要进行一些处理。比较简单直接的方式就是打印异常栈轨迹Stack Trace。说 起栈轨迹,可能很多人和我一样,第一反...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年05月18日 19:18
  • 518
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-----java异常总结*
举报原因:
原因补充:

(最多只允许输入30个字)