首页 > 解决方案 > 用户通过 orElseThrow 方法定义的异常

问题描述

根据 JAVA 8 提供的新特性,可选类是一种防止空指针异常的方法。使用 orElseThrow Method() 如果输出为空,我们可以抛出异常。我想知道我们如何使用它抛出用户定义的异常

package com.wipro.java8;

import java.util.Optional;

class employee{  
      int id;  
      String name;
      String adress ;
      int salary;  
      employee(int id,String name,String adress,int salary){  
       this.id=id;  
       this.name=name;  
       this.adress=adress ;
       this.salary=salary;  
      }  
    }

class InvalidEmployeeException extends Exception{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    int a;
       InvalidEmployeeException(int b) {
         a=b;
       }
       public String toString(){
         return ("Exception Number =  "+a) ;
      }
    }
public class oc3 {

    public static void main(String[] args) {
        employee e1= new employee(0, null, null, 0);
        Optional<String> n = Optional.ofNullable(e1.name); 
        System.out.print( n.orElseThrow( InvalidEmployeeException ::new));
    }

}

标签: javajava-8optional

解决方案


如果您需要使用带参数的异常构造函数,请使用 lambda 表达式而不是方法引用。

例如:

n.orElseThrow(() -> new InvalidEmployeeException(1))

(PS我不知道int传递给异常构造函数是什么意思,以及你如何决定传递哪个值)


推荐阅读