throw在java中是关于异常的操作。
首先异常在java中的意思是一些可以导致程序出问题的因素,比如书写错误,逻辑错误或者是api的应用错误等等,为了防止程序的崩溃就要预先检测这些因素,所以java 使用了异常这个机制。
在java中异常是靠 "抛出" 也就是英语的"throw" 来使用的,意思是如果发现到什么异常的时候就把错误信息 "抛出"。
所以如果没有throw,发生异常,只能由java的最后一道防线jvm去处理,性质不一样。
注意事项
throw代表动作,表示抛出一个异常的动作,throws代表一种状态,代表方法可能有异常抛出。throw用在方法实现中,而throws用在方法声明中,throw只能用于抛出一种异常,而throws可以抛出多个异常。
throw关键字用来在程序中明确的抛出异常,相反,throws语句用来表明方法不能处理的异常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。
碰到一个数组越界异常,不throw难道就不提示异常吗?
追答会出现异常,但只会有ArrayIndexOutOfBoundsException。如果你写了一个查找算法,在找不到元素的时候抛出异常,只抛出ArrayIndexOutOfBoundsException,谁知道是算法有问题还是设计就是如此,所以要catch然后throw一个不同的异常,表示算法没问题,但是就是没找到元素
追问不懂。。这个算法和设计有什么关系?还有就是为什么throw一个不同的异常就能表示算法没问题了?数组越界异常不就是超过数组的容量了啊,难道这么复杂?
本回答被提问者采纳