java-直接从函数调用分配变量(没有new())会引发异常吗?

cst1992

以下代码是大型项目的一部分。

概述是我正在尝试使用Spring MVC访问数据库。我想根据请求更新字段,并发送有关数据库发回的值的响应。

代码:

@Override
@Transactional

public EmployeeResponse update(EmployeeRequest employeeRequest) {
    Employee emp = new Employee();
    UUID empId = UUID.fromString(employeeRequest.getId());
    Employee foundEmployee = employeeRepository.findOne(empId);

    if (foundEmployee != null) {
        foundEmployee.setAddress(employeeRequest.getAddress());
        // similarly set 4 fields of foundEmployee
        emp = employeeRepository.save(foundEmployee);
    }
    EmployeeResponse response = new EmployeeResponse();
    response.setAddress(emp.getAddress());
    // similarly set 4 fields of response

    return response;

}

我发现没有new Employee()为之foundEmployee有为emp我不确定,但是我认为这会导致异常。我对么?

另外,请告诉我什么时候应该抛出什么异常foundEmployeenull

附加信息-这是帮助显示的内容:

org.​springframework.​data.​repository.​CrudRepository

public T findOne(ID id)

Retrieves an entity by its id.

Parameters:
id - must not be null.

Returns:
the entity with the given id or null if none found

Throws:
IllegalArgumentException - if id is null
蒂姆·比格莱森(Tim Biegeleisen)

在行中

Employee foundEmployee = employeeRepository.findOne(empId);

我们可以假设EmployeeRepository.findOne()它将返回的实例Employee这不会导致编译器错误,并且如果在运行时发生异常,则该异常将在内部findOne()

关于在发生时应采取的措施null foundEmployee,这实际上是您必须做出的设计决定。一种选择是null方法返回,让消费者知道EmployeeRequest传入的方法存在严重问题。

另一种选择是创建您自己的Exception,然后在的情况下将其抛出null foundEmployee

更新:

鉴于您需要将某些内容传递回您的UI,另一种选择是创建一个空EmployeeReponse对象并返回该对象:

EmployeeResponse response = new EmployeeResponse();
response.setAddress(null);
response.setName(null);

确保您的框架可以将null编组为用户友好的内容,例如,所有字段为空字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

为什么是Java构造函数呢?变量没有分配给数组?

来自分类Dev

为什么java.util.Objects私有构造函数会引发assertionError

来自分类Dev

Java,从文件分配变量

来自分类Dev

调用生成的Java类文件时,在JRuby中打开JSON文件会引发异常

来自分类Dev

在Java中引发复合异常

来自分类Dev

有没有一种方法可以在Java中“批量分配”布尔变量?

来自分类Dev

在Java中引发异常错误

来自分类Dev

Java ArrayList没有“直接访问”

来自分类Dev

Java“没有这样的元素异常”

来自分类Dev

Java构造函数引发异常的类的子类化

来自分类Dev

仅在try和catch块中没有引发异常的情况下,Java运行代码?

来自分类Dev

为什么调用StaticLayout.Builder会引发异常java.lang.NoClassDefFoundError?

来自分类Dev

在Java中将变量直接分配给包装类是一种好习惯吗?

来自分类Dev

Java中的变量分配

来自分类Dev

为什么Java使用带有包含X的外部变量的函数而不是直接使用X的函数更快?

来自分类Dev

Java-NoSuchMethodError没有被异常捕获

来自分类Dev

从Java调用存储过程-ORA错误未引发异常

来自分类Dev

Java8 Lambda函数分配(异常)

来自分类Dev

在Grails中直接使用Java代码会影响性能吗?

来自分类Dev

在Java中调用没有名称的函数

来自分类Dev

Java setURIResolver没有被调用?

来自分类Dev

没有“直接访问”的Java ArrayList

来自分类Dev

调用方法后的Java反射,该方法未引发异常

来自分类Dev

从Java创建SQL函数会导致异常

来自分类Dev

我可以防止Java引发某些异常吗?

来自分类Dev

Java异常没有被捕获?

来自分类Dev

WCF-使用await键调用函数会引发异常

来自分类Dev

HttpUrlConnection 没有显示被调用的 java 程序抛出的异常

来自分类Dev

如果我将一个方法分配给一个变量是在java中调用的方法吗?

Related 相关文章

  1. 1

    为什么是Java构造函数呢?变量没有分配给数组?

  2. 2

    为什么java.util.Objects私有构造函数会引发assertionError

  3. 3

    Java,从文件分配变量

  4. 4

    调用生成的Java类文件时,在JRuby中打开JSON文件会引发异常

  5. 5

    在Java中引发复合异常

  6. 6

    有没有一种方法可以在Java中“批量分配”布尔变量?

  7. 7

    在Java中引发异常错误

  8. 8

    Java ArrayList没有“直接访问”

  9. 9

    Java“没有这样的元素异常”

  10. 10

    Java构造函数引发异常的类的子类化

  11. 11

    仅在try和catch块中没有引发异常的情况下,Java运行代码?

  12. 12

    为什么调用StaticLayout.Builder会引发异常java.lang.NoClassDefFoundError?

  13. 13

    在Java中将变量直接分配给包装类是一种好习惯吗?

  14. 14

    Java中的变量分配

  15. 15

    为什么Java使用带有包含X的外部变量的函数而不是直接使用X的函数更快?

  16. 16

    Java-NoSuchMethodError没有被异常捕获

  17. 17

    从Java调用存储过程-ORA错误未引发异常

  18. 18

    Java8 Lambda函数分配(异常)

  19. 19

    在Grails中直接使用Java代码会影响性能吗?

  20. 20

    在Java中调用没有名称的函数

  21. 21

    Java setURIResolver没有被调用?

  22. 22

    没有“直接访问”的Java ArrayList

  23. 23

    调用方法后的Java反射,该方法未引发异常

  24. 24

    从Java创建SQL函数会导致异常

  25. 25

    我可以防止Java引发某些异常吗?

  26. 26

    Java异常没有被捕获?

  27. 27

    WCF-使用await键调用函数会引发异常

  28. 28

    HttpUrlConnection 没有显示被调用的 java 程序抛出的异常

  29. 29

    如果我将一个方法分配给一个变量是在java中调用的方法吗?

热门标签

归档