Exceptions(小节)

1.什么是exceptions:
契约精神:简单说api调用者传入约定范围内的参数,api返回约定相应的数值或做相应的操作
两个约定:分别可以称之为前置条件与后置条件

e.g:

      String str = "12345"try {str.charAt(-1);str.charAt(2);} catch (Exception e){e.printTrack() }

上例中,约定范围内的参数应该是0,1,2,3,4(str.lenth() - 1)
传入参数为-1时,不在约定范围内,违反了前置条件
str.charAt(2),如果不能正常返回str中得数值时,则是违反了后置条件

exceptions:api调用者或api没有遵守前后置条件导致存在可预见的异常状态

2.exceptions的类型
Error:客户端无法处理的exceptions 例如 oom ,只能交给jvm处理

checked exceptions:如果希望api调用者有意识地采取措施,那么抛出checked exceptions
eg: 当上传文件失败时,throw NoNetWorkExceptions时,api调用者,可以将文件存储在本地,采用另一种策略

unchecked exceptions:如果希望api调用者不必要采取补救措施,那么抛出 unchecked exceptions
eg:str.charAt(-1) StringIndexOutOfBoundsException

自定义异常类的作用,关键在于可以嵌入更多地信息

3.异常设计原则

  • 如果方法遭遇了一个无法处理的意外情况,那么抛出一个异常
  • 如果你认为客户端程序需要有意识地采取措施,那么抛出检查型异常
  • fail fast 尽早抛出异常
  • catch之后,不要什么都不做

 


参考:http://www.cnblogs.com/JavaVillage/articles/384483.html
http://www.cnblogs.com/octobershiner/archive/2012/12/20/2827120.html
http://niehan.blog.techweb.com.cn/archives/259.html 

转载于:https://www.cnblogs.com/jsaint/articles/3374742.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部