orelsethrow用法
时间: 2023-08-19 19:10:39 浏览: 70
orElseThrow是Optional类的一个方法,它的作用是在Optional对象为空时抛出一个指定的异常。它接受一个Supplier接口作为参数,用于在Optional为空时创建并抛出异常对象。
在使用orElseThrow时,首先需要调用Optional的ofNullable方法创建一个Optional对象,然后调用orElseThrow方法并传入一个Supplier接口,该接口用于在Optional为空时创建并抛出异常对象。
例如,假设我们有一个Optional对象math,它包含一个整数值1。我们可以使用orElseThrow方法来获取该值,如果Optional为空,则抛出一个自定义的异常对象。
```java
Optional<Integer> math = Optional.of(new Integer(1));
int result = math.orElseThrow(() -> new Exception("Optional is empty"));
System.out.println(result); // 输出 1
```
在上面的示例中,由于Optional对象math不为空,所以orElseThrow方法返回Optional中的值1,并将其赋给result变量。因此,最终输出的结果是1。
另外,如果我们有一个Optional对象math1,它为空,我们可以使用orElseThrow方法来抛出一个自定义的异常对象。
```java
Optional<Integer> math1 = Optional.ofNullable(null);
try {
int result = math1.orElseThrow(() -> new Exception("Optional is empty"));
System.out.println(result);
} catch (Exception e) {
e.printStackTrace(); // 输出异常信息
}
```
在上面的示例中,由于Optional对象math1为空,所以orElseThrow方法会调用传入的Supplier接口来创建一个异常对象,并将其抛出。因此,最终会输出异常信息。
总结来说,orElseThrow方法可以用于在Optional为空时抛出指定的异常对象,通过传入一个Supplier接口来定制异常的创建逻辑。
#### 引用[.reference_title]
- *1* [java8 orElse,orElseGet,orElseThrow的使用](https://blog.csdn.net/enthan809882/article/details/103997326)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Java Optional orElse,orElseGet,orElseThrow()用法及代码示例](https://blog.csdn.net/weixin_44389218/article/details/114164437)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [optional的orElse和orElseGet,orElseThrow](https://blog.csdn.net/qq_29569183/article/details/126928445)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)