Java-抛出异常
抛出异常:
throw: 运用于方法内部,用于给调用者返回一个异常对象,和return一样会结束当前方法.
throws: 运用于方法声明之上,用于表示当前方法不处理异常,而是提醒该方法的调用者来处理异常(抛出异常).
如:private static int divide(int num1, int num2) throws Exception {}
------------------------------------------------------------------------------------------------------------------
throw语句:
运用于方法内部,抛出一个具体的异常对象.
throw new 异常类("异常信息"); 终止方法.
------------------------------------------------------------
throw:
一般的,当一个方法出现不正常的情况的时候,我们不知道该方法应该返回什么,此时就返回一个错误,在catch语句块中继续向上抛出异常.
return 是返回一个值,throw 是返回一个错误,返回给该方法的调用者.
举例: 定义一个方法,用于处理两个整数相除.
------------------------------------------------------------------------------------------------------------------
查看String类的charAt方法源代码
------------------------------------------------------------------------------------------------------------------
public char charAT(int index){ if ((index < 0) || (index >= value.length)){ throw new StringIndexOutOfBoundsException(index); } return value[index]; }
如果每一个方法都放弃处理异常都直接通过throws声明抛出,最后异常会抛到main方法,如果此时main方法不处理,继续抛出给JVM,底层的处理机制就是打印异常的跟踪栈信息.
-------------------------------------------
runtime异常,默认就是这种处理方式.
--------------------------------------------
方法的覆盖(Override):
一同:方法的签名必须相同.
两小:
1):子类方法返回类型和父类方法返回类型相同,或是其子类.
2):子类方法不能声明抛出新的异常.
一大: 子类方法的访问权限必须大于等于父类方法的访问权限.
共有 0 条评论