异常:

一、通常使用情况:

当程序出现问题时,希望程序不要直接停止,而是提示是因为什么原因出现的异常从而可以修改。一般情况下,对于用户输入的内容,是最有可能出现异常(例如:程序定义除法,而用户输入的除数是0,如果不定义异常就会导致程序直接因为无法计算而停止,定义异常之后,程序就会直接抛出异常,甚至可以根据程序定义的提示来告诉用户出现什么原因的错误。)

二、分类:

java中的异常难吗 java异常有什么用_正常运行

 

 

Throwable主要分为错误(Error)异常(Exception);其中错误是指程序在执行过程中所遇到的硬件或操作系统的错误。错误对程序而言是致命的,将导致程序无法运行。常见的错误有内存溢出,jvm虚拟机自身的非正常运行,calss文件没有主方法。程序本生是不能处理错误的,只能依靠外界干预。Error是系统内部的错误,由jvm抛出,交给系统来处理.而异常是程序正常运行中,可以预料的意外情况。比如数据库连接中断,空指针,数组下标越界。异常出现可以导致程序非正常终止,也可以预先检测,被捕获处理掉,使程序继续运行。

三、使用方法

  1. try-catch-finally 捕获和处理异常,对于方法中的异常可以使用try-catch-finally 直接去捕获;或者关于方法中可能出现的异常,在调用方法时必须用try-catch-finally 捕获和处理异常;
  2. 抛出异常:throw,throws;(主要用在方法中!)在知道方法可能出现异常后,可以抛出异常,在调用方法时,在去捕获。

四、throw和throws的区别

  • throw是在方法中,对于方法中可能出现的异常,使用throw直接去抛出
  • throws是在方法上,对于方法里处理不了的异常,可以向上抛出。
  • throw用在方法体内,上面代码显示了,是直接在main方法体内
  • throws用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。这个看上面的代码就理解了。
  • throw是具体向外抛异常的,抛出的是一个异常实例。
  • throws声明了是哪种类型的异常,使它的调用者可以捕获这个异常。
  • throw,如果执行了,那么一定是抛出了某种异常了,安生throws表示可能出现,但不一定。
  • 同时出现的时候,throws出现在函数头、throw出现在函数体,两种不会由函数去处理,真正的处理由函数的上层调用。