zoukankan      html  css  js  c++  java
  • JAVA13-异常、线程、同步、等待与唤醒案例、线程池、Lambda表达式

    1.异常

          异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在

    1.1.Java程序中的意思就是:

    1)异常** :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。
    2)在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。
    3)异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.

    1.2.异常体系-java中异常本身是一个类,有一个顶级的类 Throwable(可扔的)

          异常机制其实是帮助我们**找到**程序中的问题,异常的根类是`java.lang.Throwable`,其下有两个子类:`java.lang.Error`与`java.lang.Exception`,平常所说的异常指`java.lang.Exception`

    **Throwable体系:**说明
    1)Error**:严重错误Error,无法通过处理的错误,只能事先避免,好比绝症
    2)Exception**:表示异常,也称之为编译器异常(写代码出现的),异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。好比感冒、阑尾炎,Exception**:还有一个RuntimeException子类(也叫运行期异常) 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。相当于程序遇到小问题,处理掉就可以继续执行。

    1.3.1处理编译器Exception异常的两种做法:

    1).抛出异常,交给虚拟机处理,就如同使用使用日期格式化这个类,缺点是一旦parse值与我们格式化的模式不一致(比方说少dd日子),就会出错parse解析异常,且程序不会继续执行

    parse方法是将字符串的日期,解析为Date格式的日期。

      1 public class Demo05StaticField {
      2     public static void main(String[] args) throws ParseException {
      3         //        Exception**:表示异常,也称之为编译器异常(写代码出现的),异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处
      4         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      5         Date date = sdf.parse("1999-09-11");// 此处出现的错误,一般抛出去throws ParseException
      6         System.out.println(date);
      7     }
      8 }

    2.)抓取异常:try{可能出现的异常代码块}catch{异常的处理机制}程序会继续执行


    image

        抓取异常之运行期异常,RuntimeException,比方说取索引数据越界

    try{

    可能出现的异常代码块

    }catch(Exception e){

    异常的处理机制}程序会继续执行

    }


      1 
      2 public class Demo05StaticField {
      3     public static void main(String[] args)  {
      4         int[] arr = {10,20,30};
      5         System.out.println(arr[3]);// 异常java.lang.ArrayIndexOutOfBoundsException: 3
      6         // 如何处理呢
      7         try{// 可能出现异常的代码
      8             System.out.println(arr[3]);
      9         }catch(Exception e){// 异常处理的逻辑
     10             System.out.println(e);
     11 
     12         }
     13         System.out.println("后续代码");
     14     }
     15 }

    1.3.2处理Error错误的方式:必须修改源代码,

    比方说定义数组arr空间过大,出现ava.lang.OutOfMemoryError异常

    如果赋值再乘以1000,更多会出现NegativeArraySizeException异常

      1 public class Demo05StaticField {
      2     public static void main(String[] args)  {
      3         int[] arr = new int[1000*1000*1000];
      4         System.out.println("后续代码");
      5     }
      6 }

    1587890505(1)

    1.3.4 异常产生的过程进行解析

    1587891574(1)


    2 异常的处理

    java中异常处理的5个关键字  try catch finally throw throws










  • 相关阅读:
    2019/1/2
    2018/12/22
    2018/12/18
    2018/12/17
    2018/12/16
    编程总结汇总
    学习总结汇总
    第十三周学习总结--助教
    第十一周编程总结
    第10周编程总结
  • 原文地址:https://www.cnblogs.com/rango0550/p/12782563.html
Copyright © 2011-2022 走看看