zoukankan      html  css  js  c++  java
  • 异常:异常的分类;获取异常及处理;抛出异常

    Throwable是所有异常当然超类!该类的两个直接子类是Error和Exception。

    Eroor:JAVA运行时的内部错误以及资源耗尽错误,很难恢复!

    Exception:可以简单分为两类:1.RuntimeException:运行异常;2.非RuntimeException:由环境因素导致的;

    异常的处理以及获取异常:

    try{

    在这里面放入可能出错的函数

    }catch(Exception e){

    处理方法

    }finally{

    无论是否出错都会执行此代码

    }

    在catch中我们一般会写Exception捕获所有异常

    当try中出现异常后,代码会立即执行catch中的代码,在这里如果要打印异常信息的话,我们会调用e.getMassage();或者直接调用e.printStackTrace()方法,此方法直接打印异常

    例1:当输入的是字符串或者出入的是0时,都会出现异常。所以在调用ShuRu方法是必须try{}catch{};如果不想try{}catch{}的话,就必须要在之前声明一下抛出此异常(throws Exception),然后谁调用这个方法谁来处理!

    package com.inba.maya.huoquyichang;
    
    import java.util.*;
    
    public class HuoQuYiChang {
        public static void main1(String[] args){
            HuoQuYiChang h=new HuoQuYiChang();
            try{
                h.ShuRu();
            }catch(Exception e){
                System.out.println(e.getMessage());
            }
        }
        
        public void ShuRu() throws Exception{
            System.out.println("请输入:");
            Scanner sc=new Scanner(System.in);
            String s=sc.nextLine();
            int num=Integer.parseInt(s);
            
            double z=100/num;
            System.out.println(z);
        }
        
    }

    例2:

    package com.inba.maya.huoquyichang;
    
    import java.util.*;
    
    public class HuoQuYiChang {  
        public static void main2(String[] args){
            int num=0;
            System.out.println("请输入:");
            try{
            Scanner sc=new Scanner(System.in);
            String s=sc.nextLine();
            num=Integer.parseInt(s);
            }catch(Exception e){
                System.out.println("输入的必须是数字    "+e.getMessage());
                throw e;
            }
            double z;
            try{
                z=100/num;
            }catch(Exception e){
                System.out.println("输入的不能是0   "+e.getMessage());
            }
        }
    }

    异常使用的原则:

    1.不要过多的使用异常,这样会见中系统的负担。

    2.在方法中使用try{}catch{}语句块捕获异常时,必须要对异常做处理。

    3.try{}catch{}语句块的范围不要太大,这样不利于对异常的分析。

    4.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或者子异常

  • 相关阅读:
    aspnetcore identity result.Succeeded SignInManager.IsSignedIn(User) false?
    RFID
    window 关机
    有赞零售小票打印图片二值化方案
    条码打印
    音频基本概念
    2008R2 部署 aspnetcore repair failed 函数不正确
    IIS 字符串过长
    解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json
    book
  • 原文地址:https://www.cnblogs.com/AnswerTheQuestion/p/6246423.html
Copyright © 2011-2022 走看看