DESKTOP-4LGG1I2_20200905-周拉才让

问题

throw和throws的区别在哪里?

相同

  • 都是用来抛出异常的

区别

  • throw代表动作,表示抛出一个异常的动作;throws代表一种状态,代表方法可能有异常抛出
  • throw用在方法实现中,而throws用在方法声明中
  • throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。
    • 用在方法声明后面,跟的是异常类名
    • 可以跟多个异常类名,用逗号隔开
    • 表示抛出异常,由该方法的调用者来处理
    • throws表示出现异常的一种可能性,并不一定会发生这些异常
  • throw:则是用来抛出一个具体的异常类型。
    • 用在方法体内,跟的是异常对象名
    • 只能抛出一个异常对象名
    • 表示抛出异常,由方法体内的语句处理
    • throw则是抛出了异常,执行throw则一定抛出了某种异常

吐槽