使用属性在java中查找对象时抛出自定义异常

时间:2018-03-29 18:20:59

标签: java exception arraylist custom-exceptions

我正在编写一个程序,我必须在其中创建一个方法,该方法通过与之关联的注册号查找CustomerAccount对象。 当在CustomerAccount对象的ArrayList中找不到注册号时,我还需要使用自定义异常。

我的方法在尝试搜索无效的注册号时抛出异常,但在搜索有效的注册号时不会打印任何内容。
我希望该方法输出与正确客户帐户关联的所有属性。

这是我到目前为止的方法:

public CustomerAccount findCustomer(String regNum){

    CustomerAccount correctAccount = new CustomerAccount("","",null,0);

    for (int i = 0; i < this.customerAccounts.size(); i++) {

        if (regNum.equals(customerAccounts.get(i).getTypeOfVehicle()
                .getRegNum())) {
            correctAccount = customerAccounts.get(i);
            return correctAccount;

        } else {

            try {

                throw new CustomerNotFoundException("Customer Not Found");

            } catch (CustomerNotFoundException e) {
                    e.printStackTrace();
            }
        }

    }

    return correctAccount;

}

我是一名新程序员,所以如果答案很明显我很抱歉,但经过一段时间滚动浏览论坛后,我仍然无法理解!

1 个答案:

答案 0 :(得分:0)

您需要在 CustomerAccount

中实施“ toString()

这样的事情:

public class CustomerAccount {
    private String id;
    private String name;
    private String email;

    public CustomerAccount(String id, String name, String email) {
        this.id = id;
        this.name = name;
        this.email = email;
    }

    @Override
    public String toString() {
        return "CustomerAccount{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

然后您就可以使用它:

CustomerAccount customerAccount = new CustomerAccount("1","TestUser", "TestMail");
System.out.println(customerAccount.toString());