码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础十八

时间:2018-07-25 01:06:26      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:ring   数据   形式   概述   控制   1.9   处理异常   使用场景   image   

1 异常

1.1 异常概述

  • 异常:异常就是Java程序在运行的过程中出现的错误。

1.2 异常的由来

  • 问题是现实生活中一个具体的事务,是可以通过Java的类的形式进行描述的,并封装成对象。
  • 其实对不正常情况进行描述后的对象的体现在Java中就是异常。

1.3 异常的分类

  • 异常体系的超类是Throwable。
  • Throwable下面有2个子类Error(错误)和Exception(异常)。
  • Exception下面有RuntimeException(运行期异常)和编译期异常(Exception的子类除去RuntimeException的)。

技术分享图片

1.4 JVM默认如何处理异常

  • 如果程序出现了问题,我们没有处理,那么JVM会做默认的处理。
  • 把异常的名称,原因和出现的位置等信息输出在控制台。并终止程序。

 

  • 示例:
package com.xuweiwei;

/**
 * @author 许威威
 * @version 1.0
 */
public class ExceptionDemo {
    public static void main(String[] args) {
        int a = 10 / 0;
        
        System.out.println("over");

    }
}

1.5 异常处理方案

1.5.1 try……catch……finally方式

  • 格式
try{
  可能出现异常的代码;
}catch(异常名 变量){
   处理异常; 
}finally{
  释放资源;  
}

 

  • 示例:
package com.xuweiwei;

/**
 * @author 许威威
 * @version 1.0
 */
public class ExceptionDemo2 {
    public static void main(String[] args) {
        try {
            int i = 10 / 0;
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("over");
    }
}

 

  • 示例:
package com.xuweiwei;

/**
 * @author 许威威
 * @version 1.0
 */
public class ExceptionDemo3 {
    public static void main(String[] args) {

        try {
            int[] arr = {1};
            System.out.println(arr[1]);
        }catch (ArithmeticException e){
            System.out.println("除数不能为0");
        }catch (IndexOutOfBoundsException e){
            System.out.println("数组访问越界");
        }

        System.out.println("over");



    }
}

 

1.5.2 throws方式

  • 使用场景:定义功能方法的时候,需要把出现的问题暴露出来让调用者去处理。那么就通过throws在方法上标识。

 

  • 示例:
package com.xuweiwei;

/**
 * @author 许威威
 * @version 1.0
 */
public class ExceptionDemo3 {
    public static void main(String[] args) {

        try {
            int[] arr = {1};
            System.out.println(arr[1]);
        }catch (ArithmeticException e){
            throw new RuntimeException("除数不能为0"+e.getMessage());
        }catch (IndexOutOfBoundsException e){
            throw new RuntimeException("数组访问越界"+e.getMessage());
        }

        System.out.println("over");



    }
}

1.6  编译期异常和运行期异常的区别?

  • 编译期异常必须处理。
  • 运行期异常可以不处理。

1.7 throw和throws的区别?

  • throws:
  • ①用在方法声明后面,跟的是异常类名。
  • ②可以跟多个异常类名,用逗号隔开。
  • ③表示抛出异常,由该方法的调用者来处理。
  • ④throws表示出现异常的一种可能性,并不一定会发生这些异常。  

 

  • throw:
  • ①用在方法体内,跟的是异常对象名。
  • ②只能抛出一个异常对象名。
  • ③表示抛出异常,由方法体内的语句处理。
  • ④throw表示抛出了异常,执行throw则一定会抛出某种异常。

1.8 如何处理异常?

  •  原则:如果该功能内部可以将问题处理,用try,如果处理不了,就用throws抛出异常。

 

  • 区别:
  • ①后续程序需要运行就try。
  • ②后续程序不需要运行就thorws。

1.9 finally关键字

1.9.1 finally关键字的特点

  • 被finally控制的语句体一定会执行,除非在执行finally之前JVM退出了。

1.9.2 finally的作用

  •  用于释放资源,在IO流操作和数据库操作中经常遇见。

 

 

 

 

2 File

 

3 递归

 

Java基础十八

标签:ring   数据   形式   概述   控制   1.9   处理异常   使用场景   image   

原文地址:https://www.cnblogs.com/xuweiweiwoaini/p/9363306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!