关键词:java 异常类 异常处理 throws throw Exception
-
如果一个类称为异常类,必须要继承异常体系(Exception,RuntimeException),因为只有异常体系的子类才具有可抛性
-
编译时检测异常:只要是Exception和其子类都在编译时检测,除了特殊子类RuntimeException
-
自定义异常时只能继承Exception或者 RuntimeException
-
throws和thorw的区别
(1)throw是在代码块内的,即在捕获方法内的异常并抛出时用的;(2)throws是针对方法的,即将方法的异常信息抛出去
(3)可以理解为throw是主动(在方法内容里我们是主动捕获并throw的),而throws是被动(在方法上是没有捕获异常进行处理,直接throws的)
-
如果调用针对throws的方法,那调用方法需要使用try_catch,进行异常的处理
-
try{
//需要检测的代码
}catch(异常类 变量){
//处理异常的代码
}
package demo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.swing.plaf.synth.SynthStyle;
public class Test {
public static void main(String[] args)
{
try {
throwChecked(5);
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
throwRuntime(3);
}
public static void throwChecked(int a) throws Exception
{
if (a > 0)
{
// 自行抛出Exception异常,必须处于try块中,或带throws声明的方法中
throw new Exception("a不合法");
}
}
public static void throwRuntime(int a)
{
if (a > 0)
{
// 自行抛出Runtime异常,既可以显示捕获该异常,也可以不用理会该异常,交给方法调用者处理
throw new RuntimeException("a1不合法");
}
}
}
class MyselfException extends RuntimeException {
MyselfException() {
// TODO Auto-generated constructor stub
}
MyselfException(String msg) {
super(msg);
}
}