打字猴:1.700449393e+09
1700449393
1700449394 try{
1700449395
1700449396 FileInputStream fis=new FileInputStream(file);
1700449397
1700449398 /*其他业务逻辑处理*/
1700449399
1700449400 }catch(FileNotFoundException e){
1700449401
1700449402 //异常处理
1700449403
1700449404 }
1700449405
1700449406 }
1700449407
1700449408 这样一段代码经常会在我们的项目中出现,但经常写并不代表不可优化,这里的异常类FileNotFoundException完全可以在它诞生前就消除掉:先判断文件是否存在,然后再生成FileInputStream对象,代码如下:
1700449409
1700449410 public static void main(String[]args){
1700449411
1700449412 File file=new File(“文件.txt”);
1700449413
1700449414 //经常出现的异常情况,可以先做判断
1700449415
1700449416 if(fle.exists()&&!fle.isDirectory()){
1700449417
1700449418 try{
1700449419
1700449420 }catch(){
1700449421
1700449422 }
1700449423
1700449424 }
1700449425
1700449426 }
1700449427
1700449428 虽然增加了if判断语句,增加了代码量,但是却会减少FileNotFoundException异常出现的几率,提高了程序的性能和稳定性。
1700449429
1700449430 注意 异常只为确实异常的事件服务。
1700449431
1700449432
1700449433
1700449434
1700449435 编写高质量代码:改善Java程序的151个建议 [:1700438191]
1700449436 编写高质量代码:改善Java程序的151个建议 建议117:多使用异常,把性能问题放一边
1700449437
1700449438 我们知道异常是主逻辑的例外逻辑,举个简单例子来说,比如我在马路上走(这是主逻辑),突然开过一辆车,我要避让(这是受检异常,必须处理),继续走着,突然一架飞机从我头顶飞过(非受检异常),我可以选择继续行走(不捕捉),也可以选择指责其噪音污染(捕捉,主逻辑的补充处理),再继续走着,突然一颗流星砸下来,这没有选择,属于错误,不能做任何处理。这样具备完整例外情景的逻辑就具备了OO的味道,任何一个事物的处理都可能产生非预期结果,问题是需要以何种手段来处理,如果不使用异常就需要依靠返回值的不同来进行处理了,这严重失去了面向对象的风格。
1700449439
1700449440 我们在编写用例文档(Use Case Specification)时,其中有一项叫作“例外事件”,是用来描述主场景外的例外场景的,例如用户登录的用例,就会在“例外事件”中说明“连续3次登录失败即锁定用户账号”,这就是登录事件的一个异常处理,具体到我们的程序中就是:
1700449441
1700449442 public void login(){
[ 上一页 ]  [ :1.700449393e+09 ]  [ 下一页 ]