Java 通过异常处理错误(12)

数字织梦
• 阅读 1161

Java的基本理念是“结构不佳的代码不能运行”。

1.概念

  • 用强制规定的形式来消除错误处理过中随心所欲的因素.
  • 使用异常所带来的一个相当明显的好处是,它往往能够降低错误处理代码的复杂度.

2.基本异常

  • 异常情形是指阻止当前方法或作用于继续执行的问题.
  • 标准异常都有两个构造器:一个是默认构造器,另一个是接受字符串作为参数,以便能把相关信息放入异常对象的构造器.

3.捕获异常

  • 监控区域:一段可能产生异常的代码,并且后面跟着处理这些异常的代码.
  • try块:跟在关键字try之后的普通程序块.
  • 异常处理程序:抛出的异常必须在某处得到处理,这个"地点"就是异常处理程序,而且针对每个要捕获的一场,得准备相应的处理程序.
  • 异常处理程序紧跟在try块之后,以关键字catch表示.
  • 异常处理模型:终止模型,恢复模型(不实用).

4.创建自定义异常

  • 要自定义异常类,必须从已有的异常类继承,最好的选择是相近的异常类继承.

5.异常说明

  • 异常说明使用了附加的关键字throws,后面接一个所有潜在异常类型的列表.

6.捕获所有异常

  • Exception是与编程有关的所有异常类的基类.

7.Java标准异常

  • Throwable这个Jaba类被用来表示任何可以作为一场被抛出的类.
  • Throwable对象可分为两种类型(指从Throwable继承而得到的类型):Error(表示编译时和系统错误),Exception(可以被抛出的基本类型).
  • 特例:RuntimeException(或任何从它继承来的异常),编译器不需要一场说明,其输出报告给了System.err.

8.使用finally清理

  • 无论异常是否被抛出,finally子句总能被执行.

9.异常的限制

  • 当覆盖方法的时候,只能抛出在基类方法的异常说明里列出的一场.

10.构造器

  • 处理具有可以失败的构造器,且需要清理的对象:对于每一个构造器,都必须包含在其自己的try-finally语句块中,并且每一个对象构造器必须都跟随一个try-finally语句块以确保清理.

11.异常匹配

  • 抛出异常的时候,异常处理系统会按照代码的书写顺序找出"最近"的处理程序.
  • 找到匹配的处理程序之后,它就认为异常将得到处理,然后就不再继续查找.
  • 查找的时候并不要求抛出的异常同处理程序所声明的异常完全匹配,派生类的对象也可以匹配其基类的处理程序.

12.其他可选方式

  • 异常处理的一个重要原则:只有在知道如何处理的情况下才捕获异常.
  • 异常处理的一个重要目标:把错误处理的代码同错误发生的地点相分离.

13.异常使用指南

  • 应该在下列情况下使用异常:
    1.在恰当的级别处理问题.
    2.解决问题并且重新调用产生异常的方法.
    3.进行少许修补,然后绕过异常发生的地方继续执行.
    4.在别的数据进行计算,以代替方法预计会返回的值.
    5.把当前运行环境下能做的事情尽量做完,然后把相同的异常重抛到更高层.
    6.把当前运行环境下能做的事情尽量做完,然后把不同的异常重抛到更高层.
    7.终止程序.
    8.进行简化.
    9.让类库和程序更安全.

END

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
03.Android崩溃Crash库之ExceptionHandler分析
目录总结00.异常处理几个常用api01.UncaughtExceptionHandler02.Java线程处理异常分析03.Android中线程处理异常分析04.为何使用setDefaultUncaughtExceptionHandler前沿上一篇整体介绍了crash崩溃
Wesley13 Wesley13
3年前
初探 Objective
作者:Cyandev,iOS和MacOS开发者,目前就职于字节跳动0x00前言异常处理是许多高级语言都具有的特性,它可以直接中断当前函数并将控制权转交给能够处理异常的函数。不同语言在异常处理的实现上各不相同,本文主要来分析一下ObjectiveC和C这两个语言。为什么要把ObjectiveC和
Wesley13 Wesley13
3年前
Java异常
异常分为两种:Exception、ErrorException:异常,可以捕捉到,进行处理以后可以让程序继续正常执行Error:错误,不能捕捉,只能修改代码,重新执行ThrowableException(RuntimeException非运行时异常)throw:抛出指定的异常throws:用在方法声明处,声明该方法可能发生
Wesley13 Wesley13
3年前
JAVA学习笔记 之 异常
异常的概述代码在运行时期发生的问题就称之为异常。在java中,异常被封装成为了一个类,当程序出现了异常类中的问题时,异常的信息(如位置和原因)就会被抛出。在java中用Exception来描述异常,publicclassExceptionextendsThrowable则是异常的继承体系。 Throwable是所有错误或异常的
Wesley13 Wesley13
3年前
Java入门之异常处理
1.异常概念异常指的是程序在执行过程中出现的非正常的情况,导致JVM的非正常停止。在Java中,异常是一个类,产生异常就是创建异常对象并抛出一个异常对象。异常指的并不是语法错误,语法错误,编译不会通过,而是编译通过后,程序执行异常。异常的作用是帮助我们找到程序中的问题。2.异常产生过程解析pub
Stella981 Stella981
3年前
PlayJava Day020
1.异常Exception补充:①错误(Error)指的是致命性错误,一般无法处理②异常以类的形式封装程序可以处理的异常对应的类是java.lang.Exception及其子类运行时异常对应的类是java.lang.RuntimeException错误异常对应的类是java.lang.Error③异常相关类的继承树:java.la
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Wesley13 Wesley13
3年前
Java异常处理的最佳实践
Java异常处理的最佳实践为什么要有最佳实践我们在写程序是不可避免的要对代码进行异常处理,但是有时对异常的处理会使我们的程序变的更加糟糕,这是我们所不想看到的。所以,我们再进行异常处理时需要遵循一定的套路,来降低异常处理对我们程序的影响。异常产生的原因一般来说,java中的异常会
小万哥 小万哥
2年前
C++异常和错误处理机制:如何使您的程序更加稳定和可靠
在C编程中,异常处理和错误处理机制是非常重要的。它们可以帮助程序员有效地处理运行时错误和异常情况。本文将介绍C中的异常处理和错误处理机制。什么是异常处理?异常处理是指在程序执行过程中发生异常或错误时,程序能够捕获并处理这些异常或错误的机制。例如,当
小万哥 小万哥
1年前
C++ 异常处理机制详解:轻松掌握异常处理技巧
C异常处理C异常处理机制允许程序在运行时处理错误或意外情况。它提供了捕获和处理错误的一种结构化方式,使程序更加健壮和可靠。异常处理的基本概念:异常:程序在运行时发生的错误或意外情况。抛出异常:使用throw关键字将异常传递给调用堆栈。捕获异常:使用
小白学大数据 小白学大数据
11个月前
错误处理在网络爬虫开发中的重要性:Perl示例 引言
错误处理的必要性在网络爬虫的开发过程中,可能会遇到多种错误,包括但不限于:网络连接问题服务器错误(如404或500错误)目标网站结构变化超时问题权限问题错误处理机制可以确保在遇到这些问题时,爬虫能够优雅地处理异常情况,记录错误信息,并在可能的情况下恢复执行