考虑这个简单的程序。该程序有两个文件:
文件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());
}
}
正如你在第一个类中看到的,我已经添加了一个注释("//抛出异常“),我想抛出一个异常。我是否必须为异常定义自己的类,或者在Java中是否有一些我可以使用的通用异常类?
发布于 2011-08-04 21:55:55
您可以创建自己的异常类:
public class InvalidSpeedException extends Exception {
public InvalidSpeedException(String message){
super(message);
}
}
在你的代码中:
throw new InvalidSpeedException("TOO HIGH");
发布于 2011-08-04 21:53:54
您可以使用IllegalArgumentException:
public void speedDown(int decrement)
{
if(speed - decrement < 0){
throw new IllegalArgumentException("Final speed can not be less than zero");
}else{
speed -= decrement;
}
}
发布于 2011-08-04 21:52:53
好吧,有很多异常可以抛出,但下面是抛出异常的方法:
throw new IllegalArgumentException("INVALID");
此外,是的,您可以创建自己的自定义异常。
关于异常的说明。当您抛出一个异常(类似于上面)并捕获到该异常时:您在异常中提供的String
可以被访问,抛出getMessage()
方法。
try{
methodThatThrowsException();
}catch(IllegalArgumentException e)
{
e.getMessage();
}
https://stackoverflow.com/questions/6942624
复制相似问题