public void userDB() throws IOException//throws用在方法名后面
public void userDB()
{
....
throw new IOException();//throw用在方法体内
........
}

解决方案 »

  1.   

    throws用在函数说明后面,说明这个函数抛出那些异常。
    throw用在函数中,用于主动抛出一个异常。
      

  2.   

    胡乱补充一两句(我也不知道对不对)throws 后可以跟多个异常(复数形式)
    throw  后只能跟一个异常各位大虾,这么理解对吗?
      

  3.   

    确切的说
    在 java 里面 函数应该称为 方法! 嘻嘻
      

  4.   

    补充:一个方法可以在方法声明时有throws,但里面却不真正的throw任何异常。另外,如果throw的是一个RuntimeException,方法声明的时候可以忽略不写throws;反之,如果throw的是一个Exception,方法声明的时候一定要表现出来。如果用英文理解,Exception类的子类,除了RuntimeException及其子类,又叫Checked-Exception,必须在编译的时候就被检查(比如私有的方法的使用);而RuntimeException及其子类,又叫Unchecked-Exception,可以在编译的时候忽略掉,因为他们是难以检查的(比如用户输入的数据)。
      

  5.   

    Throw语句明确地引发一个异常。例如:首先通过catch子句的参数或使用new运算符获得一个Throwable实例的句柄。格式为:throw ThrowableInstance(对象);执行throw语句后,运行流程立即停止,throw的下一条语句将暂停执行,系统转内存的一个try语句块检查是否有catch子句能匹配Throwable实例。如果找到了相匹配的实例,系统转向该子句。如果没找到,则转向上一层的try语句,这样逐层往上,直到最外层的异常处理程序中止程序并打印出调用栈状况。  一个方法可能引发一个异常而它自己又没有处理,那么应该指明异常,让其他调用者来处理这个异常,Throws关键字可用来指明方法中可能引发的所有异常。对于大多数的Exception子类,Java编译器要求指明方法引发的异常类型。但如果异常的类型为Error和RuntimeException或他们的子类,这条规则就不适用了。因为他们不是程序正常执行时所能引发的。如果一个方法明确地引发一个Exception.....