zoukankan      html  css  js  c++  java
  • Java学习笔记之异常处理

    异常: Error Exception

    概述:
    try {代码块1} :对代码块1进行代码监控
    catch(){代码块2}:当代码1出现了对应捕获的异常则执行此对应的代码块内容。
    finally{代码块3} :表示无论如何,是否出现异常,都会执行里面的代码内容。

    有异常:代码块1 ---> 代码块2 ---->代码块3 (出现异常以后,异常后面的代码就不会执行了,代码流程改变了。)
    没异常:代码块1 ---> 代码块3

    我们可以分别捕获多种异常,一旦发生那种异常就进入对应catch里面的代码块。
    捕获的异常的顺序:先子类到父类 先细后粗

    可不可以没有finally块?可以
    可以不可以没有catch块?没有finally就一定要有catch.如果有finally语法上可以没有catch,我们还是要加上catch

    编译时异常:编译期间就需要捕获异常。也就是说必须有try catch捕获
    运行时异常:NullPointerException 。可以根据需要有或者没有。

     1         try {
     2             
     3             //我们要对下面的代码进行监控
     4             //代码块1;
     5             //引用数据类型为null的时候,不能调用null上面的任何方法或者属性。否则给出空指针异常。NullPointerException
     6 //            String s =null;
     7 //            s.equals("abc");
     8             
     9 //            System.out.println(5/0);
    10             
    11             
    12             System.out.println("hello");
    13         } catch (NullPointerException e) {
    14             //代码块2;// 只有出现了NullPointerException的时候才执行
    15             System.out.println("你的代码出现了NullPointerException。。。。。");
    16 //            e.printStackTrace();
    17         } catch (ArithmeticException e) {
    18             //代码块2;// 只有出现了ArithmeticException的时候才执行
    19             System.out.println("你的代码出现了ArithmeticException。。。。。");
    20 //            e.printStackTrace();
    21         } finally {
    22             //代码块3;
    23             System.out.println("这句代码真的总是会执行吗?");
    24         }

    自定义异常:

    自定义一个异常类继承Exception接口

    public class OutOfAgeException extends Exception{
        
        /**
         * 自定义异常处理
         */
        private static final long serialVersionUID = 1L;
        
        public OutOfAgeException(String msg){
            super(msg);
            
        }
        
    
    }

    写一个方法抛出异常

    public static void age(int age) throws OutOfAgeException {
            if(age<0){
                throw new OutOfAgeException("年龄不合法...");
            }else{
                System.out.println("年龄合法");
            }
        }

    在上诉代码块1中调用方法就行

    java异常中throw和throws的区别:

    throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。

    throw:则是用来抛出一个具体的异常类型。

  • 相关阅读:
    人人数据挖掘实习生面经
    关于贝叶斯分类中的二项独立模型和多项式模型
    关于序列的面试题1 判断整数序列是否是二叉排序树的后续遍历
    机器学习经典算法之最小二乘法
    协同过滤算法之—slope one算法
    关于序列的面试题2最大连续子序列和以及积
    控制DOUBLE,DECIMAL小数点的位数
    Invoke的用法
    windowForm学习资料总结
    .NET开发编程规范
  • 原文地址:https://www.cnblogs.com/sunzhiqiang/p/11742884.html
Copyright © 2011-2022 走看看