跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Java try with resource 难受
未分類
2020 年 10 月 7 日

Java try with resource 难受

Java try with resource 难受

資深大佬 : cheneydog 4

之前把 try 都改成了 java try with resource 形式。现在有新需求,发现无法实现,难道又要改回来?

try( Handler api = getHandler() ) {     // 做点啥     api.getState();      } catch ( Exception e ){     log.error("getState {} 时异常 {}", api, e);          // [看这里]  我想要在执行出错的情况下多做一步操作,api 这个对象竟然没法访问到!!!     api.markDirty(); }  

请教,如果我要在异常的情况下多做一点操作, java try with resource 形式是不是就没法写了???

那也太鸡肋了。。。

大佬有話說 (12)

  • 資深大佬 : ChenFanlin

    emmm 第一直觉是在里面再套个 try catch 来执行 Java try with resource 难受

  • 資深大佬 : glasslion

    api 定义移到外面去不就行了

  • 資深大佬 : xiangyuecn

    try( Handler api = getHandler() ) {

    }

    这才是真正的 try with resource,科学点:

    using( Handler api = getHandler() ){

    }

    啥也不是:
    try(xxx){}catch(){}

  • 資深大佬 : lxk11153

    链接: https://juejin.im/post/6844903517086285837
    > 在 Java 7 中,try-with-resouces 语法要求为每一个资源声明一个新的变量,而且这些资源由 try-with-resources 语句进行管理。
    > 在 Java 9 中:如果一个资源被 final 或者等效于 final 变量引用,则在不需要声明一个新的变量的情况下,try-with-resources 就可以管理这个资源。

  • 資深大佬 : tairan2006

    不是。。。你这把 try 的两种用法混合双打?

  • 資深大佬 : ebony0319

    好像继承 Closeable 接口,然后重写 close 方法即可。你这种情况只需要重写 close 方法。

  • 主 資深大佬 : cheneydog

    @ebony0319 close 永远被执行,我哪里知道有没有发生异常呢?

  • 主 資深大佬 : cheneydog

    @lxk11153 暂时还没法用 jdk9

  • 主 資深大佬 : cheneydog

    @xiangyuecn 看不懂

  • 資深大佬 : lxk11153

    @cheneydog #8 层 2 不是已经说了吗?
    “`java
    Handler api;
    try( Handler _api = (api=getHandler()) ) {
    } catch (Exception e) {
    api.markDirty();
    }
    “`

  • 資深大佬 : lxk11153

    还是这样吧:
    “`java
    Handler api = getHandler();
    try( Handler _api = api ) {
    } catch (Exception e) {
    api.markDirty();
    }
    “`

  • 資深大佬 : javapythongo

    在 finaly 手动 close 就是了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具