Java中|运算符作用于类场景时的具体含义是什么?
Java catch块中|符号的含义
你看到的RuntimeException | Error e中的|不是位运算符,是Java 7版本开始支持的多重异常捕获语法的类型分隔符,作用是在单个catch块中同时处理多种类型的异常。
核心特性
- 简化重复的异常处理逻辑:如果多个异常类型的处理逻辑完全一致,不需要分开写多个catch块,用
|分隔异常类型即可 - 你提供的示例中
catch (RuntimeException | Error e)表示:当try块抛出RuntimeException或者Error类型的异常时,都会进入当前catch块执行统一的处理逻辑 - 语法限制:通过多重捕获声明的异常变量
e默认是final修饰的,无法在catch块内对e重新赋值
语法对比(Java 7之前的等价写法)
Java 7没有推出多重捕获语法前,相同逻辑需要写两个重复的catch块:
catch (RuntimeException e) { callback.onFailure(e); return; } catch (Error e) { callback.onFailure(e); return; }
内容的提问来源于stack exchange,提问作者lai nan
相关产品推荐
相关产品推荐

