当前位置: 首页 > news >正文

网站屏蔽ip怎么制作美图素材图片

网站屏蔽ip,怎么制作美图素材图片,电子商务网站建设的认识的心得,响应式网站制作公司Java从一开始就支持检查异常。 在Java 8中#xff0c;语言元素lambda和支持流操作的RT库修改将功能编程风格引入了该语言。 函数样式和异常并不是真正的好朋友。 在本文中#xff0c;我将描述一个简单的库#xff0c;该库在某种程度上类似于使用Optional处理null方式处理异常… Java从一开始就支持检查异常。 在Java 8中语言元素lambda和支持流操作的RT库修改将功能编程风格引入了该语言。 函数样式和异常并不是真正的好朋友。 在本文中我将描述一个简单的库该库在某种程度上类似于使用Optional处理null方式处理异常。 该库有效毕竟它是单个类和一些内部类但实际上不是很多。 另一方面我不是绝对确定使用该库不会降低普通程序员的编程风格。 可能会有人用锤子把所有东西都看成是钉子。 锤子不是很好的修脚工具。 看看这个库更像是一个想法而不是作为一个告诉您如何创建完美的代码处理异常的最终工具。 处理检查的异常 已检查的异常必须像感冒一样被声明或捕获。 这是与null的主要区别。 评估表达式可以静默为null但不能静默引发已检查的异常。 当结果为null我们可以使用它来表示没有值或者我们可以检查并使用“默认”值代替null 。 这样做的代码模式是 var x expression; if ( expression null ){ x expression that is really never null default expression that is really never } 模式表达式是相同的尽管Java语法略有不同但表达式的求值可能会引发检查异常。 Type x; // you cannot use var here try { x expression } catch (Exception weHardlyEverUseThisValue){ x expression that does not throw exception default expression that does not } 如果第二个表达式也可以为null或可能引发异常并且如果第一个表达式失败我们需要第三个表达式甚至更多个表达式进行评估则结构可能会更复杂。 由于许多括号在抛出异常的情况下这尤其顽皮 Type x; // you cannot use var here try { try { x expression1 } catch (Exception e){ try { x expression2 } catch (Exception e){ try { x expression3 } catch (Exception e){ x expression4 }}}} catch (Exception e){ x expression that does not throw exception default expression that does not } 对于null处理我们有Optional 。 解决百万美元的问题并不是完美的这是设计一种既没null又被低估的语言的名称但是如果使用得当它会使生活变得更好。 更糟糕的是如果使用错误的方式您可以随意地说我在本文中所描述的正是这种方式。 如果结果表达式为null 则可以编写 var x Optional.ofNullable(expresssion) .orElse( expression that does not throw exception); default expression that does not exception); 你也可以写 var x Optional.ofNullable(expresssion1) .or( () - Optional.ofNullable(expression2)) .or( () - Optional.ofNullable(expression3)) .or( () - Optional.ofNullable(expression4)) ... .orElse( expression that does not throw exception); default expression that does not exception); 当您有很多替代值时。 但是如果表达式引发异常则您不能做同样的事情。 可以吗 极好的 库Exceptional https://github.com/verhas/exceptional groupId com.javax0/ groupId artifactId exceptional/ artifactId version 1.0.0/ version 实现了在Optional实现的所有方法一个或多个实现了某些方法并且某些方法的目的有所不同旨在在异常情况下使用相同的方式如上面针对null值的Optional 。 您可以使用Exceptional.of()或Exceptional.ofNullable()创建一个Exceptional值。 重要的区别在于论点不是价值而是提供价值的供应商。 该供应商不是JDK Supplier因为该Supplier无法引发异常因此整个库将无用。 此供应商必须是Exceptional.ThrowingSupplier 它与JDK Supplier完全相同但方法get()可能会抛出Exception 。 另请注意只有一个Exception 而不是Throwable正如你用裸手搭上了烧红的铁球你应该只捕捉尽可能频繁。 在这种情况下您可以写的是 var x Exceptional.of(() - expression) // you CAN use var here .orElse( expression that does not throw exception); default expression that does not exception); 它越来越短通常更容易阅读。 或者不是这就是为什么APL如此受欢迎或者是您问什么是APL 如果您有多种选择可以写 var x Exceptional.of(() - expression1) // you CAN use var here .or(() - expression2) .or(() - expression3) // these are also ThrowingSupplier expressions .or(() - expression4) ... .orElse( expression that does not throw exception); default expression that does not exception); 如果某些供应商可能会导致null不仅引发异常则有方法的ofNullable()和orNullable()变体。 orNullable()在Optional中不存在但在这里如果整个库都可以使用则是有意义的。 如果您熟悉Optional并使用更高级的方法如ifPresent() ifPresentOrElse()或orElseThrow() stream() map() flatMap() filter()那么使用Exceptional并不困难。 类中存在具有相同名称的类似方法。 再次不同的是如果Optional的方法的参数为Function 则为Exceptional时为ThrowingFunction 。 利用这种可能性您可以编写如下代码 private int getEvenAfterOdd( int i) throws Exception { if ( i % 2 0 ){ throw new Exception(); } return 1 ; } Test DisplayName ( some odd example ) void testToString() { Assertions.assertEquals( 1 , Exceptional.of(() - getEvenAfterOdd( 1 )) .map(i - getEvenAfterOdd(i 1 )) .or( () - getEvenAfterOdd( 1 )) .map(i - i.toString()).orElse( something ) ); } 也可以像下面的示例一样处理函数表达式中的异常 private int getEvenAfterOdd( int i) throws Exception { if (i % 2 0 ) { throw new Exception(); } return 1 ; } Test void avoidExceptionsForSuppliers() { Assertions.assertEquals( 14 , ( int ) Optional.of( ).map(i - 13 ).map(i - Exceptional.of(() - inc(i)) .orElse( 0 )).orElse( 15 )); } 最后但并非最不重要的一点是您可以模仿?. Groovy写作的运营商 abcdef 表达式其中所有变量/字段都可能为null并通过它们访问下一个字段会导致NPE。 您可以但是写 var x Exceptional.ofNullable( () - abcdef).orElse( null ); 摘要 记住我对锤子说的话。 小心使用并获得更大的利益。 翻译自: https://www.javacodegeeks.com/2019/05/handling-exceptions-functional-style.html
http://www.yutouwan.com/news/498923/

相关文章:

  • 广州专业网站建设有哪些网络营销案例及分析
  • 通过招聘网站如何做背景调查做网站先做前台还是后台
  • 平果县免费网站哪家好优化是什么意思?
  • 官方网站哪家做的最好西安制作标书的公司
  • 邢台县建设局网站wordpress页尾添加信息
  • wordpress多站点统计如何建立自己的超市网站
  • 网站建设与维护视频教程免费搭建一个网页
  • 成都租车公司网站旅游营销网站建设
  • 网站建设中轩网怎么样第三方平台推广引流
  • 郑州网站建设创业wordpress怎么弄中文
  • 网站制作软件手机版千灯做网站
  • 网站子目录建立qq刷赞网站推广快速
  • 西安网站建设xamokj资阳做网站
  • 网站建设优化之优化关键字中国官网查询系统
  • wordpress 网站前端显示网站开发要多久
  • 网站的开发环境是什么深圳市罗湖区住房和建设局官网
  • 软件公司 网站建设费分录app开发公司一个月可以赚多少钱
  • 网站做资讯需要获取许可证吗wordpress导航文件夹
  • 微信网站cms做net网站
  • 网站建设怎么开发客户湛江wx
  • 一个门户网站源码公司设计网站需要注意哪些
  • 合肥专业网站制作关于公司网站建设请示
  • 中山今科网站建设门户网站自查报告
  • 沙洋网站开发母婴网站设计开发
  • 怎么登陆建设工程网站重庆关键词seo排名
  • 做服装外贸哪个网站好wordpress 媒体文件发布
  • 电子商务网站设计公司如何推广普通话的建议6条
  • 济南模板网站制作企业贷款
  • 网站常识湖南长沙理工大学
  • 湘潭网站设计公司学生做的网站