普通的Catch处理
假设您希望使用不同的标准处理相同类型的异常。一个常见的场景是HttpException。当您捕获一个HttpException时,会返回一个响应代码。根据响应代码的不同,您可能需要采取不同的操作。
如您所见,处理错误涉及catch块中的一系列if语句。这样的代码看起来很不优雅。如果涉及到嵌套异常出来会使可读性变得更加困难,这使更加容易出现问题。
使用When关键字的Catch 处理
引入when关键字,会让代码变得优雅起来。让我们使用when关键字来处理相同的逻辑。
将when关键字应用到相同的代码会减少嵌套。看起来更直观,所以它使catch块的逻辑更容易理解。
在编写本文时,when关键字在代码styler中没有被格式化为关键字。这恰恰也证明这个关键字并不广为人知。这很不幸,因为它在很多情况下都很有用!
When关键字不仅仅只是能判断异常
在<code>when</code> 语句中,可以评估的不仅仅是异常。这样做实际上非常有用。看看下面的例子:
如您所见,评估catch异常之外的其他变量是很有用的。实际上,我今天使用它来实现对API的web调用的备份。
switch Case中使用When关键字
此 switch 非彼 switch,编译后你会发现扩展的 switch 就是 as 、if 、goto 语句的组合体。同 is expressions 一样,以前我们也能实现只是写法比较繁琐并且可读性不强。
模式匹配语法是想让我们在简单的情况下实现类似与多态一样的动态调用,即在运行时确定成员类型和调用具体的实现。
结论
您应该开始在必须检查异常以作出决定的场景中使用when关键字。我们不用太担心其他不熟悉这个关键字的开发人员。when关键字很直观,可会很快学会!但是,一定要注意在when表达式中的对象引用不能再出新的异常。
原文链接:https://blog.csdn.net/flysnowjava/article/details/81213513
下一篇:没有了