例如如何在try-catch中使用if

时间:2016-05-17 13:01:01

标签: java

我想要做的是在2到60之间给出一个数字。如果这个数字不包括在这个"空间"那么会有一个名为InvalidLicenceNumberException的异常。我有和类UserInput,但它不需要上传它的确定  我的主要:

import java.io.*;
public class Exercv {
    public static void main(String[] args)  {
        int ArTh ;
        ArTh=Vehicle.NumberPos();
        try {
            if(ArTh<2 || ArTh>60){
                ArThEx();
            }
        } catch(InvalidLicenceNumberException e){
            System.out.println(""+e);
            throw new InvalidLicenceNumberException ("There is an exception!");
        }
    }        

我的班级车辆:

public abstract class Vehicle {
static int user; //for userinput
    public static int ArTh() {
        System.out.println("Give number between 2 until 60");
        user=UserInput.getInteger();
        if(user>=2 && user<=60){
            System.out.println(" Possition is  :  "+ user);
        }
        return user;
    }

    public static void ArThEx() throws ArithmeticException{
        System.err.println("There is an exception");
        System.err.println("Positions arent acceptable");
    }
  }

我的班级例外:

import java.lang.Exception;

public class InvalidLicenceNumberExceptio extends MyException {
    public  InvalidLicenceNumberExceptio(String s){
        super(s);
    }
}

3 个答案:

答案 0 :(得分:0)

你可能想要类似下面的代码。

请注意,没有必要从main方法重新抛出异常,因为无论如何都不会捕获它。 因此,只需打印您的消息并让程序完成(可能强制退出代码System.exit

public static void ArThEx() throws InvalidLicenceNumberException{

    System.err.println("There is an exception");
    System.err.println("Positions arent acceptable");
    throw new InvalidLicenceNumberException("Out of range");
}

答案 1 :(得分:0)

尝试更改你的ArThEx方法,并告诉我它是否有效

public static void ArThEx() throws ArithmeticException{
        System.err.println("There is an exception");
        System.err.println("Positions arent acceptable");
        throw new InvalidLicenceNumberExceptio();
    }

答案 2 :(得分:0)

您可以直接抛出异常,例如:

    if (user < 2  || user > 60)   {
        throw new InvalidLicenceNumberException("Your number needs to be between 2 and 60");
        System.exit(1);
   }

或者将其封装在你的ArThEx函数中,这通常是一种更好的做法。

public static void ArThEx() throws InvalidLicenceNumberException {
    throw new InvalidLicenceNumberException("Your number needs to be between 2 and 60 (you typed " + user + ")");
    System.exit(1);
}