在函数内有抛出异常时,应在函数申明时用throws语句申明,使调用者知道你的函数会抛出什么异常,并在调用时进行捕捉。
将setDate的申明改为以下就可以了:void setDate(int y,int m,int d)
     throws MyDateException
{

解决方案 »

  1.   

    void setDate(int y,int m,int d) throws MyDateException, Exception{
    if(d>31) {
    throw new MyDateException("day too big");//抛出异常

    year=y;
    month=m;
    day=d;
    }
      

  2.   

    void setDate(int y,int m,int d) throws MyDateException {  
    即可, 没必要像楼上抛出Exception 。另外,需要抛出该异常的情况很多,
    月份 1 - 12 合法, 其他抛出该异常
    1,3,5,7,8,10,12 月时 日期 1 - 31 合法, 其他抛出该异常
    4,6,9,11 月时, 日期 1 - 30 合法, 其他抛出该异常
    2月时, 平年 日期 1 - 28 合法, 其他抛出该异常
            闰年 日期 1 - 29 合法, 其他抛出该异常