当前位置: 首页 > 面试题库 >

如何在Java中引发一般异常?

单凯捷
2023-03-14
问题内容

考虑这个简单的程序。该程序有两个文件:

Vehicle.java:


class Vehicle {
    private int speed = 0;
    private int maxSpeed = 100;

    public int getSpeed()
    {
        return speed;
    }

    public int getMaxSpeed()
    {
        return maxSpeed;
    }

    public void speedUp(int increment)
    {
        if(speed + increment > maxSpeed){
            // throw exception
        }else{
            speed += increment;
        }
    }

    public void speedDown(int decrement)
    {
        if(speed - decrement < 0){
            // throw exception
        }else{
            speed -= decrement;
        }
    }
}

和HelloWorld.java:

public class HelloWorld {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Vehicle v1 = new Vehicle();
        Vehicle v2 = new Vehicle();

            // do something

            // print something useful, TODO         
        System.out.println(v1.getSpeed());
    }

}

正如您在第一堂课中所看到的,我在其中想抛出异常的地方添加了一条注释(“ // throw
exception”)。我必须为异常定义自己的类,还是可以在Java中使用一些常规的异常类?


问题答案:

您可以创建自己的Exception类:

public class InvalidSpeedException extends Exception {

  public InvalidSpeedException(String message){
     super(message);
  }

}

在您的代码中:

throw new InvalidSpeedException("TOO HIGH");


 类似资料:
  • 问题内容: 如何从Java 8流/ lambda中抛出CHECKED异常? 换句话说,我想使代码像这样编译: 由于上面的方法,因此该代码无法编译。 请注意,我不想将已检查的异常包装在运行时异常中,而是将已包装的未检查的异常抛出。我想抛出被检查的异常本身,而又不添加丑陋的流。 问题答案: 该帮助程序类使你可以在Java流中使用任何已检查的异常,如下所示: 注意抛出异常,已被选中。流本身也会抛出,而不

  • 我使用的是一个创建自己线程的库,它引发了一个异常。如何捕捉异常?异常在下面标记的行上引发:

  • 问题内容: 我已经使用try catch块处理了Jenkins管道步骤。在某些情况下,我想手动引发异常。但它显示以下错误。 我检查了scriptApproval部分,没有待批准的项目。 问题答案: 如果要在异常情况下中止程序,则可以使用管道步骤以错误停止管道执行。范例: 如果要以成功状态停止管道,则可能需要使用某种布尔值来指示必须停止管道,例如:

  • 如何使pytest打印回溯,所以我将看到在任何函数中的哪里引发了异常?

  • 我想使用测试异常是否工作良好。 例如,假设I test queue。

  • 我正尝试在类的方法中使用(以支持拖放)。我想显示我拖动的文件的导入进度。然而,它并不起作用。我不明白问题是什么,或者是什么引起的。 例外情况: