推广 热搜: 二手  净利2626万  北京  二手车  SMM废铜现货交易日评  企业  全国  汽车  三星  公司 

Java用Catcher捕获异常如何达成

   日期:2024-09-27     来源:www.ageeze.com    作者:二手网    浏览:354    评论:0    
核心提示:[db:简介]
概述

平常开发中,大家常常会处置一些不能不处置的检查性异常与一些不重要的一场,比如:

try{doSomething();}catch(Exceptione){e.printStackTrace();//orLogger.d(error:+e.getMessage());}

即使只不过想忽视掉异常也得写成:

try{doSomething();}catch(Exceptionignore){}

事实上,这种代码大家一般只关心三个部分:1. 实行的动作;2. 和动作关联的异常;3. 异常的处置方法。想象中的伪代码可能是如此的:

captureIOExceptionfrom()-{}tohandleIOException

转换为Java代码,就是:

Catcher.capture(IllegalAccessException.class).from(()-{//dosomethingthrownewException(kdsfkj);}).to(Main::onFailed);//或Catcher.capture(IllegalAccessException.class,IOException.class).from(()-{//dosomethingthrownewException(kdsfkj);}).to(e-{//handleexception});Catcher的达成

publicclassCatcher{ListClass?classes=newlinkedList();privateActionaction;privateTextendsExceptionCatcher(ListClass?extendsTlist){classes.addAll(list);}@SafeVarargspublicstaticTextendsExceptionCatchercapture(Class?extendsT...classes){ListClass?extendsTlist=Arrays.asList(classes);returnnewCatcher(list);}publicCatcherfrom(Actionaction){this.action=action;returnthis;}publicvoidto(ConsumerExceptionexceptionConsumer){try{action.run();}catch(Exceptione){for(Class?mClass:classes){if(mClass.isInstance(e)){exceptionConsumer.accept(e);return;}}thrownewIllegalStateException(e);}}publicinterfaceAction{voidrun()throwsException;}}

注意:本文所展示的代码仅用于娱乐作用与功效,如有启发,纯属巧合,请不要用在实质生产环境

 
标签: Java Catcher
打赏
 
更多>同类二手资讯
0相关评论

热门推荐
推荐图文
推荐二手资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  免责声明  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报