ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java程序在执行过程中所发生的异常事件可分为两类:Error、Exception

2021-07-03 19:33:24  阅读:140  来源: 互联网

标签:Exception Java int void ---- Error Test 异常 public


异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。 (开发过程中的语法错误和逻辑错误不是异常).Java程序在执行过程中所发生的异常事件可分为两类:Error、Exception

  • Error: Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowErrorOOM。一般不编写针对性的代码进行处理
  • Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:
  • 空指针访问
  • 试图读取不存在的文件
  • 网络连接中断
  • 数组角标越界

Error

  • StackOverflowerError异常(栈溢出)
 public static void main(String[] args) {
    main(args);
   //递归调用本身的main方法
    }
  • OutOfMemoryError异常(堆溢出简称OOM)
 public static void main(String[] args) {
        int []i =new int[1024*1024*1024];
       }

Exception 常见的异常

package com.yuteng;


import org.junit.Test;

import java.io.File;
import java.io.FileInputStream;
import java.util.Date;
import java.util.Scanner;

/**
 * @version 1.0
 * @author: 余腾
 * @date: 2021-07-03 16:42
 * 一、异常体系结构
 *      |----java.lang.Error: 一般不编写针对性的代码进行处理
 *      |----java.lang.Exception:可以进行异常的处理
 *         |---- 编译时异常(checked)
 *              |---- IOException
 *                 |--- FileNotFoundException
 *              |---- ClassNotFoundException
 *         |---- 运行时异常(unchecked)
 *            |---- NullPointException
 *            |---- ArrayIndexOutOfBoundsException
 *            |---- ClassCastException
 *            |---- NumberFormatException
 *            |---- InputMismatchException
 *            |---- ArithmaticException
 */
public class ExceptionTest {
    //编译时异常 写完打X了
    /**
     * FileNotFoundException
     */
    @Test
    public  void FileNotFoundException(){
        File file=new File("hello.txt");
        FileInputStream fis=new FileInputStream(file);
       int data= fis.read();
       while (data!=-1){
           System.out.println((char)data);
           data=fis.read();
       }
       fis.close();
    }
   //运行时异常
    /**
     * NullPointException  空指针异常
     */
    @Test
    public void NullPointException (){
        int [] i =null;
        System.out.println(i[0]);
        //字符串空指针
        // String str=null;
        //System.out.println(str.charAt(0));
    }

    /**
     * ArrayIndexOutOfBoundsException 角标越界异常
     */
    @Test
    public void ArrayIndexOutOfBoundsException(){
        int [] i= new  int[3];
        System.out.println(i[3]);
        //字符串角标越界
//        String  str="abc";
//        System.out.println(str.charAt(3));
    }
    /**
     *  ClassCastException 类型转换异常
     */
    @Test
    public void  ClassCastException(){
        Object obj=new Date();
        String  str= (String) obj;
    }
    /**
     * NumberFormatException  数据转换异常
     */
    @Test
    public void NumberFormatException(){
        String str="abc";
        int num=Integer.parseInt(str);
    }
    /**
     * InputMismatchException 数据输入异常
     */
    @Test
    public  void InputMismatchException(){
        Scanner sc=new Scanner(System.in);
        int i=sc.nextInt();
        //然后你输出abc 就会爆出异常
        sc.close();
    }
    /**
     * ArithmaticException  算术异常
     */
    @Test
    public void  ArithmaticException(){
        int a=10;
        int b=0;
        System.out.println(a / b);
    }
}

异常的解决策略

  • 遇到错误就终止程序的运行。
  • 由程序员在编写程序时,就考虑到错误的检测、错误消息的提示,以及错误的处理。

异常概述与体系结构

标签:Exception,Java,int,void,----,Error,Test,异常,public
来源: https://www.cnblogs.com/yuteng666/p/14967347.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有