使用try-catch块时遇到麻烦

时间:2014-11-05 01:35:28

标签: java class methods try-catch

所以我有一个名为Date的简单类,有3个数据成员和一个单独的类Driver;我试图在类Date的set方法中使用try-catch块检查输入错误。

public void setDate(int month, int day, int year)
{
    try
    {
        dMonth = month;
        dDay = day;
        dYear = year;
    }
    catch (InputMismatchException imeR)
    {
        System.out.println("Wrong input type");
    }
}

但是当我编译课程Drive ...

public class Driver
{
    public static void main (String[] args)
    {
        Date zeroDate = new Date ();

        System.out.println(zeroDate.getMonth());
        zeroDate.setDate(4,4,4);
        System.out.println(zeroDate.getMonth());
        zeroDate.setDate(4,4,"string");
    }
}

...,我收到以下错误:

Driver.java:14: error: incompatible types: String cannot be converted to int
        zeroDate.setDate(4,4,"ted");

其他一切正常,当我注释掉这一行......

zeroDate.setDate(4,4,"string");

...,我能够很好地操纵课程日期。

这是我第一次尝试try-catch块。有人可以解释我错过的东西吗?

2 个答案:

答案 0 :(得分:3)

这与try-catch块无关。这是因为你传入了一个需要int的字符串。 因为Java是静态类型的,所以它不允许你在编译时这样做。

答案 1 :(得分:0)

在你的setDate方法中你得到三个int类型,你不能传递任何其他数据类型..