当前位置: 首页 > 知识库问答 >
问题:

通过orElseThrow方法[重复]的用户定义异常

段阳夏
2023-03-14

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

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));
    }

}

共有1个答案

松昱
2023-03-14

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

例如:

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

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

 类似资料:
  • 我正在尝试使用Java8命令抛出一个自定义的Expetion。然而,我得到了以下编译错误: 和扩展RunTimeException的自定义异常类UserNotFoundException如下所示: 提前道谢。

  • 我正在远离mysql和mysqli,因为stackoverflow上的许多用户都在不断地谈论它的优点。 我做了一个数据库类,并测试了这个,这与数据库连接良好。我试图更新我准备好的语句,以匹配我在不熟悉的领域,但最终得到以下错误: 它反映了这一行:

  • 我试图测试连接到数据库没有得到数据。为此,我制作了这个测试文件。 我有一个类,在其中创建与数据库的连接: 这门课效果很好。但是,当我试图进行测试时,我得到了这个错误: 我的package.json是: 我做错了什么?

  • 可以通过函数语法调用sqrt: 也可以通过方法语法调用: 有没有办法让用户定义的子例程可以通过方法语法调用? 例如,让我们定义sq: 有没有一种方法可以使它作为方法可调用?即。

  • 我正在尝试创建这个存储过程,它应该将客户编号和电子邮件地址作为输入。然后更新该客户的电子邮件地址。如果新的电子邮件地址与旧的相同,则应提出异常。 但它是抛出错误。不确定我是否做得对。我正在使用最新的OracleSQLDeveloper。 错误(6,1): PLS-00103:在需要以下内容之一时遇到符号“DECLARE ”: begin function pragma procedure subt

  • 我已运行此以显示表中的所有。 但它给了我那个错误。 调用未定义的方法mysqli_result::result()