java 08 异常
Exception
java.lang.Object 所有类的超类
Throwable:可抛出
Error //错误
Exception //异常
throw //抛出异常的语句(用着函数内,后面跟异常对象)
throws //声明抛出异常时使用的关键字(用在函数上,后面跟异常类名)
try
{
需要检测的代码;
}
catch(异常类 变量)
{
异常处理的代码
}
finally
{
一定会执行的代码
}
finally代码块只有一种情况下不会被执行,就是之前执行了System.exit(0)
----------------------------------------------------------------------------
class ThrowableDemo{
public static void main(String[] agrs){
float r = dvide(4,0);
System.out.println(r);
//int [] arr ={121,1245,45};
//int [] arr =new int[4];
//异常数据
int [] arr = null;
System.out.println(getlength(arr));
}
public static float dvide(int a ,int b){
return (float)a / b;
}
//计算数字的长度
public static int getlength(int[] arr ){
//return arr.length;
int len = 0;
try {
//执行到return 说明没有问题,如果有问题不会执行到return,直接进catch
len = arr.length;
return len;
}
catch(Exception e){
//e.getMessage()打印出错的信息
System.out.println("出错了" + e.getMessage());
return len;
}
//如果try出问题,进catch ,如果么有问题最后进finally
finally {
System.out.println("程序执行完毕");
}
}
}
error
-----------------------------------------------------------------
class ThrowableDemo2{
public static void main(String[] agrs){
try{
sayHello();
}
// Error 错误体系
//Exception 异常体系
catch(Error e){
System.out.println("报错了"+e.getMessage());
}
}
public static void sayHello(){
System.out.println("hello word");
sayHello();
}
}
异常类
--------------------------------------------
class Throwableclass{
public static void main(String[] agrs){
Person p = new Person();
try{
p.setAge(50);
}
catch(Exception e){
((Agetoobigexception) e).printerror();
}
}
}
class Person{
private int age;
public int getAge(){
return age;
}
//在方法上声明一下抛出异常
public void setAge(int age) throws Agetoobigexception {
if(age >200){
//如果>200抛出异常
throw new Agetoobigexception();
}
this.age =age;
}
}
//异常类
class Agetoobigexception extends Exception{
//定义异常返回消息
private String info;
//构造函数
public Agetoobigexception(String info){
this.info =info;
}
//重载构造函数,无参数
public Agetoobigexception(){
this("年龄太大");
}
//打印错误信息
public void printerror (){
System.out.println(info);
}
}