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.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或者子异常

  • 相关阅读:
    Shell中调用、引用、包含另一个脚本文件的三种方法
    mysql基础
    传智博客(JavaWeb方面的所有知识)听课记录(经典)
    nginx配置负载均衡与反向代理
    nginx 详解
    iOS开发之集成ijkplayer视频直播
    Nginx配置文件nginx.conf中文详解(总结)
    WorldWind源码剖析系列:数学引擎类MathEngine
    WorldWind源码剖析系列:二维点类Point2d和三维点类Point3d
    WorldWind源码剖析系列:枚举类型
  • 原文地址:https://www.cnblogs.com/AnswerTheQuestion/p/6246423.html
Copyright © 2011-2022 走看看