“写什么?”;试一试;语句-Java-异常处理?

“写什么?”;试一试;语句-Java-异常处理?,java,try-catch,Java,Try Catch,在Java中还有一个问题——这次是关于异常处理的——我似乎找不到具体的答案 我有一个Main类、一个Customer类以及一个Exception类(但我没有将其粘贴到这里): 我在“catch”语句中得到了一个错误——“在相应的try语句体中永远不会抛出异常” 我遇到的问题是-我不知道在try语句中写什么才能使这项工作起作用。 public String Customer(String model) throws InvalidCar { String carModel; if

在Java中还有一个问题——这次是关于异常处理的——我似乎找不到具体的答案

我有一个Main类、一个Customer类以及一个Exception类(但我没有将其粘贴到这里):

我在“catch”语句中得到了一个错误——“在相应的try语句体中永远不会抛出异常”

我遇到的问题是-我不知道在try语句中写什么才能使这项工作起作用。

public String Customer(String model) throws InvalidCar
{
    String carModel;

    if (validateCar(carModel))
    {
        carModel = model;
    }
    else
    {
        InvalidCar f = new InvalidCar(carModel);
        throw f;
    }

任何帮助都将不胜感激——我对此非常困惑,也许我只是问了一个错误的问题

您需要调用函数-try块中的
客户(字符串模型)
。然后可以抛出异常,这样就不会再出现错误了

public static void main(String[] args)
{
    try
    {
        // what can i write in here to make this a valid exception?
        String model = Customer("myModel");
    }
    catch (InvalidCar e)
    {
        System.err.println("test");
    }
}

因为您的try块从不抛出
InvalidCustomer
,并且如果您使用上面的
Customer
函数,那么它可能只抛出
InvalidCar
,在这种情况下,它不是
InvalidCustomer
的子类

这可能会按照您的预期工作:

public String Customer(String model) throws InvalidCustomer{
String carModel;

if (validateCar(carModel))
{
    carModel = model;
}
else
{
    throw new InvalidCustomer();
}
然后,在
main()
中:


出现错误的原因是try块中没有引发异常的代码

System.out.println(“测试”)不会引发异常

要使其工作,请调用引发InvalidCustomer异常的方法

写入
字符串customer=customer(“carModel”)在try块中。还要确保此方法确实抛出InvalidCustomer。看起来它只是抛出了InvalidCar异常。

最好将方法(Customer)重命名为小写字母“c”。

您需要添加一些容易引发InvalidCustomer异常的代码。注意,按照惯例,异常类应该使用“exception”一词启用。将挡块视为安全带:你在飞机或汽车上系好安全带,因为有发生事故的“机会”。但坐在桌子旁时不会,因为那里永远不会发生事故。通常,您编写的东西会在
try
-块中抛出
异常。然后,
catch
-块能够捕获在
try
块中抛出的
异常
,从而做出相应的反应。有关更多信息,请查看。如果您只想检查异常处理的工作方式,可以从try块显式抛出异常:类似于:throw new InvalidCustomer();什么是无效客户,如何创建?
InvalidCar
是一个
InvalidCustomer
异常,如果是这样,是什么导致一个car无法验证?(还有谁能给我一个提示…)您收到的编译器警告或错误告诉您,您试图捕获一个未抛出的异常。因为它是您的自定义异常类,
println()
语句不能抛出它。您可能需要添加一个
throw new InvalidCustomer()
语句,该语句可能会继续被抛出。如果
Customer()
throw
InvalidCar
,则此操作有效。您必须更改
Customer()
的签名才能执行此操作:
public String Customer(String model)抛出InvalidCar{…
感谢您在这方面的帮助。它是否在“String model”行上给了我一个新错误-“找不到符号”.Hello Justin-您必须将
string
更改为
string
-我也更新了我的帖子以反映这一点。感谢您在这方面的帮助。它现在给了我“string model”行一个新错误-“找不到符号”。
public String Customer(String model) throws InvalidCustomer{
String carModel;

if (validateCar(carModel))
{
    carModel = model;
}
else
{
    throw new InvalidCustomer();
}
    try{
    String model = Customer("Illegal Model");
    }catch(InvalidCustomer e){
    System.out.println("gotcha");
    }