Java学习----day7——(4)Java异常处理机制之入门篇

序言:异常的处理——-(存在异常——>解决方案处理)
1.异常:程序中出现无法执行的代码段。

package com.Example.Charpter07;
 /**
  * @author Administrator 
  * @date : 2017年4月2日 上午11:47:01
  * @function : 了解异常 
*/ 
public class Introduction {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            int c=1/0;
            System.out.println(c);//可能出现异常的语句
        } catch (Exception e) {
            // TODO: handle exception
            //异常匹配成功后的异常处理
            e.printStackTrace();
        }finally{
            System.out.println("异常处理结束");
        }


    }

}

控制台消息:
这里写图片描述
因为在数学处理中,0作为被除数,结果为无穷大!在内存中怎么表示????当然就是内存被占满。后续程序当然无法继续执行;
总结:异常分为:(1)程序执行时出现的错误;(2)JVM出现的错误;

2.解决异常方案
一般情况下就是直接限定好初步条件,防止出现问题;
这样极大的占用了资源,使得程序运行效率变低;

Java提供了自己的异常处理机制,try——catch语句;

try {
            int c=1/0;
            System.out.println(c);//可能会出现异常的语句
        } catch (Exception e) {
            // TODO: handle exception
            //异常匹配成功后的异常处理
            e.printStackTrace();
        }finally{
            System.out.println("异常处理结束");//异常处理的统一出口;
        }

具体的底层数据流动:
step1.
try的代码体中是可能出现异常的代码段;
step2.
出现异常java自己实例化异常类去和catch中异常类匹配,再进去具体代码段执行异常处理;
step3.
finally是异常处理的统一出口;

3.异常类
这里写图片描述
Error:是指JVM中的错误,程序所不能解决的;
Exception:程序中出现的错误;

4.catch语句体中需要注意的点
catch是相当于捕获异常;一般可以直接使用Exception捕获异常;
打印错误信息的时候就是

//第一种方法
System.out.println(e);
//第二种方法
e.printStackTrace();

5.throws和throw关键字

1.throws关键字

package com.Example.Charpter07;

public class ThrowsDemo {

    public void errorDemo() throws Exception{
        System.out.println("出现异常"+(1/0));
    }
    public static void main(String[] args) {
        ThrowsDemo throwsdemo=new ThrowsDemo();
        try{
            throwsdemo.errorDemo();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

这里写图片描述
个人理解:此处可能存在异常,在方法体中定义try—catch语句好像没有看见到吧,这块存有疑问!try—-catch语句在方法体中直接使用!(个人猜测,是异常类需要实例化),所以通过标识throws需要在主方法中添加Java的异常处理机制。

2.throw关键字
手动抛出异常但是有时候有些错误在jvm看来不是错误,比如说
很正常的整形变量赋值,但是在我们眼中看来就不正常,谁的年龄会是负的呢。所以我们需要自己手动引发异常,这就是throw的作用

int age = 0;  
age = -100;  
if(age<0)  
{  
Exception e = new Exception();//创建异常对象  
throw e;//抛出异常  
}  
System.out.println(age);  

6.自定义异常类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值