java - 为什么我的异常(exception)不起作用

标签 java exception

如果输入的客户名称为 null,则应该抛出异常,但我的代码不起作用。

public class CustomerAccount {
    private String name;

    public CustomerAccount(String name) throws IllegalArgumentException {

        this.setName(name);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) throws IllegalArgumentException {
        try {
            this.name = name;

        }

        catch (IllegalArgumentException illegal) {
            if (name == "" || name == null) {
                System.err.println("please do not enter the empty string" + illegal);
            }

        }
    }

    public String toString() {
        return "Name: " + this.getName();
    }

    public static void main(String[] args) {
        CustomerAccount c1 = new CustomerAccount("random name");

        c1.setName(null);
        System.out.println(c1);
    }
}

最佳答案

如果名称为 null 或为空(该方法中没有 try/catch),setName 应该简单地抛出 IllegalArgumentException。

public void setName(String name) throws IllegalArgumentException {
   if ("".equals(name) || name == null) {
    throw new IllegalArgumentException("Name should not be null or empty");
   }
   this.name=name;

 }

关于java - 为什么我的异常(exception)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32713526/

相关文章:

java - 如何解决clearcase中的 checkin 冲突问题

java - 如何更改 EclipseLink 中的连接

java - 为什么不能通过唯一键访问Java ArrayList?

java - 没有端点 java 异常

尝试读取文件并在出现异常时回退到备用文件的 Pythonic 方式

Objective C 中类似 Java 的接口(interface)

java - 单击时从 ListView 中删除所选项目

java - 如何拥有必须至少运行一次的 public void 方法

c++ - 如何在 Windows 上报告堆栈缓冲区溢出?

java - 数组中的值(不是索引)大于 3 会导致 java.lang.ArrayIndexOutOfBoundsException