美文网首页
异常的概述与使用

异常的概述与使用

作者: 技术客栈 | 来源:发表于2020-08-31 19:23 被阅读0次

平常我们开发当中经常为遇到一些错误,而阻止Java程序的运行,我们就成为异常。
例如我们在实际开发当中常见的异常:

  • NumberFormatExcepiton 字符串转换为数字异常
  • NullException 空指针异常
  • ArrayIndexOutOfBountsException 数组角标越界异常
  • ClassNotFountException 未找到类异常
  • SQLException 数据库异常
  • 等等

对于这些异常Exception 是需要我们程序员进行捕获处理我标明抛出相关的处理。

捕捉异常方式

  1. 使用 try-catch
    异常捕获结构 由三部分组成,try - catch - finally。需要强调下 finally,他是Exception 处理最后执行的部分, 不论 try 语句中的代码块怎么退出都将执行 finally 语句!

  2. 使用 throws 抛出异常
    throws 是用来指定该方法可能抛出的异常,通常应用在声明方法时。如以下简单的实例:

public class MyClass {
    public static void main(String args[]){
        System.out.println("Hello World !");
        selectMethod("select");
    }


    public static void selectMethod(String data) throws NumberFormatException{
        int number = Integer.parseInt(data);
        System.out.println("得出的数字结果值:"+number);
    }
}

编译得出以下错误异常信息:

Exception in thread "main" java.lang.NumberFormatException: For input string: "select"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:492)
    at java.lang.Integer.parseInt(Integer.java:527)
    at com.example.MyClass.selectMethod(MyClass.java:11)
    at com.example.MyClass.main(MyClass.java:6)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Hello World !

Process finished with exit code 1

但是这样依然是没有达到我们的要求,我们是需要在程序出现已知或未知的错误异常信息之后依然能够执行后面的方法,所以我们的结合 try-catch 语句块来进行捕获处理

public class MyClass {
    public static void main(String args[]) {
        try {
            selectMethod("select");
        } catch (Exception ex) {

        }

        System.out.println("Hello World !");
    }

这样的话编译就能通过虽然说不符合相关的结果要求!但是模拟的情况我们是实现了!

3。 使用自定义异常

1、创建自定义异常类
2、在相关的方法中通过 throw 抛出异常的对象。
3、使用 try - catch 语句进行相关异常的捕获和处理

package com.example;

public class MyClass {
    public static void main(String args[]) {
        try {
            selectMethod("select");
        } catch (Exception ex) {

        }
        
        //----------------自定义异常----------
        try {
            testMethod(4);
        } catch (ResultException e) {
            e.printStackTrace();
            e.getErrorCode();
            System.out.println(e.getErrorCode());
        }

        System.out.println("Hello World !");
    }


    /**
     * throws 的使用
     * @param data
     */
    public static void selectMethod(String data) throws NumberFormatException{
        int number = Integer.parseInt(data);
        System.out.println("得出的数字结果值:" + number);
    }

    /**
     * 自定义异常的使用
     * @param data
     * @throws ResultException
     */
    public static void testMethod(int data) throws ResultException{

        if (data < 10){
            throw new ResultException("404","错误异常信息!!!!");
        }
    }
}

对于异常的处理和捕获,有利于我们管理我们代码的阅读性,和规范性,安全性! 所以我们必须的灵活的使用异常的常用设计,以此为我们以后重构代码做出简单、规范的梳理!

相关文章

  • 异常的概述与使用

    平常我们开发当中经常为遇到一些错误,而阻止Java程序的运行,我们就成为异常。例如我们在实际开发当中常见的异常: ...

  • Java之异常抛出

    异常的使用概述异常及时Java程序在运行的过程中出行的错误 异常分类 JVM是如何处理异常的 main方法遇到这种...

  • global reference限制策略

    一、概述 global reference使用不当,就会引发lobal reference overflow异常问...

  • 异常&IO(File类)

    day19(异常&IO(File类)) 1_异常(异常的概述和分类) A:异常的概述异常就是Java程序在运行过程...

  • 异常

    异常概述 每一个异常都是某个类的实例发生了异常如果不捕获,则程序将终止执行有一些内置的异常类 如何捕获异常 使用t...

  • day19-Java异常处理/File类

    19.01_异常(异常的概述和分类) A:异常的概述:异常就是Java程序在运行过程中出现的错误。 B:异常的分类...

  • JAVA面试50讲之1:Exception底层原理是什么?

    目录 异常的概念 异常的使用 异常的原理 Error与Exception的区别 使用建议 一、异常的概念 java...

  • Android框架——RxJava(一)概述与基本使用

    RxJava(一)概述与基本使用 RxJava学习系列: RxJava(一)概述与基本使用 [RxJava(二)创...

  • Java基础笔记19

    19.01_异常(异常的概述和分类) A:异常的概述异常就是Java程序在运行过程中出现的错误。 B:异常的分类通...

  • JAVA笔记19-25

    19.01_异常(异常的概述和分类) A:异常的概述异常就是Java程序在运行过程中出现的错误。 B:异常的分类通...

网友评论

      本文标题:异常的概述与使用

      本文链接:https://www.haomeiwen.com/subject/lpjpsktx.html