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

网站建设公司的客户网站品牌推广公司

网站建设公司的客户,网站品牌推广公司,wordpress创建小工具,上海注册公司收费善用工具不久前#xff0c;在博客中 #xff0c;我解释了Groovy中Closure的含义。 这篇博客文章将解释一个使用它们的好例子。 最近#xff0c;我发现自己不得不为服务AJAX请求的大量后端Controller API编写相同的异常处理逻辑。 就像这样#xff1a; class ApiRugbyPlaye… 善用工具 不久前在博客中 我解释了Groovy中Closure的含义。 这篇博客文章将解释一个使用它们的好例子。 最近我发现自己不得不为服务AJAX请求的大量后端Controller API编写相同的异常处理逻辑。 就像这样 class ApiRugbyPlayerController {JSON getPlayerStats() {try {...// invoke business service method to get player stats} catch (ServiceException serviceException) {// dont care too much about this.// log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client...} catch (Exception ex) {throw new ApiException(ex)}}JSON updatePlayerStats() {try {...// invoke business service method to update player stats} catch (ServiceException serviceException) {// dont care too much about this.// log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client...} catch (Exception ex) {throw new ApiException(ex)}}JSON queryPlayerStats(){try {...// invoke business service method to query player stats} catch (ServiceException serviceException) {// dont care too much about this.// log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client...} catch (Exception ex) {throw new ApiException(ex)}} } 可以看出这里有一些代码重复。 本着DRY的精神不要重复自己最好只定义一次此异常处理逻辑然后重新使用它。 因此我定义了以下实用程序方法该方法实现了异常处理模式并采取了关闭操作该闭包将为其执行异常处理。 private JSON withExceptionHandling(Closure c) {try {...c.call();} catch (ServiceException serviceException) {// dont care too much about this. // log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client ...} catch (Exception ex) {throw new ApiException(ex)}} 我们可以使用{}将代码封闭在Groovy中以使其成为闭包。 这意味着我可以将Controller方法中的逻辑转换为Closures并将其传递给Utility方法。 而且当我将其传递给实用程序方法时我甚至不需要将其传递给内部因为Groovy并不使您满意。 因此这意味着我可以消除所有常见的异常处理消除代码膨胀而且我的Controller API更整洁。 class ApiRugbyPlayerController {JSON getPlayerStats() {withExceptionHandling {...// invoke business service method to get player stats} }JSON updatePlayerStats() {withExceptionHandling {...// invoke business service method to update player stats} }JSON queryPlayerStats(){withExceptionHandling {...// invoke business service method to query player stats} }private JSON withExceptionHandling(Closure c) {try {...c.call();} catch (ServiceException serviceException) {// dont care too much about this. // log and move on... } catch (SessionException sessionException) {// clear out session cookies...// send 403 to client ...} catch (Exception ex) {throw new ApiException(ex)}} } 所以我们去了。 我们坚持DRY原则避免了代码膨胀并为我们的异常处理提供了专门的场所确信它可以始终如一地实现。 Groovy闭包的这个例子有点像但是就像JavaScript中的第二次调用一样。 如果我们想用Java做类似的事情那将涉及很多代码。 我们可以使用类似命令模式的东西并将它们的执行放入异常处理逻辑中。 您将具有更多的去耦功能但是您将拥有更多的代码。 或者您可以使所有AJAX API输入一个通用方法例如Front Controller但在该处处理通用异常。 同样可能但仅需更多代码。 在下一次之前请多保重。 参考 都柏林技术博客博客上的JCG合作伙伴 Alex Staveley 很好地使用了闭包 。 翻译自: https://www.javacodegeeks.com/2014/03/good-use-of-closures.html善用工具
http://mrfarshtey.net/news/58572/

相关文章:

  • 抚顺做网站的公司专门用于网页制作的软件
  • php做网站毕设答辩问什么建设部政务网站建设
  • 专业制作网站哪家好温州seo博客
  • 手机网站菜单栏怎么做dedecms网站地图怎么做
  • 建设银行沈阳分行网站聊城网站推广动态
  • 合肥生态丽景网站建设WordPress如何做多语言版本
  • 怎么做网站前台台州电子商务网站建设
  • 如何拥有自己的网站域名网站设计公司苏州
  • 营销型网站核心要素有哪些手机app开发最好的工具
  • 网站建设的基础服务盐城快速建设网站找哪家
  • 南平建设集团有限公司网站seo排名优化教学
  • 网站模板怎么用法商丘网站优化公司
  • 全球做的比较好的网站有哪些二级域名做网址导航大全网站
  • 偃师建设局网站手机网站关键词优化软件
  • 做词频云图的网站万网注册域名做简单网站
  • 西安百度网站快速优化湖州民生建设有限公司网站
  • 如何建企业仢网站手机网站导航页
  • 网站后台修改内容看不见了莱芜在线论坛 莱芜话题
  • 辽宁网站制作域名设计与分析
  • 聊城网站建设lchckj网站建设一般需要多少钱
  • 做百度网站费用多少合适网站建设方案书制作流程
  • 网站开发语言为wapwordpress 修订版本号
  • 网盘怎么做电影网站关键词网站推广
  • wps怎么做网站建设一个网站的基本成本
  • 软件网站技术开发公司页面设计快捷键
  • 手机做任务网站有哪些内容美容评测网站建设分析报告
  • 初中电脑做网站的软件360免费wifi总是断断续续的掉线
  • 河南省住房和城乡建设厅网站确认书dedecms织梦搬家公司网站模板
  • 做百度竞价对网站空间有什么要求计算机专业主要学什么学科
  • 网站开发工作周记开源电商网站建设价格