• 异常处理的优势【存在意义】:异常检测者有检测出异常的能力,但不知道在出现该异常的情况下应该怎么处理。故库方法一般会抛出异常给调用者来处理。所以总结而言,异常处理的优势就是,将处理错误(调用者处理)从检测错误(被调用者检测)中分离出来。
  • 异常的分类:
    1. 系统错误:内部系统错误,虚拟机抛出。免检。
    2. 异常:由程序和外部环境所引起的错误,这些错误能被程序捕获和处理。必检。
    3. 运行时异常:程序设计错误,通常虚拟机抛出。免检。
  • 关于异常处理需要注意的点:
    1. Exception类,既可能是普通的异常,也可能是运行时异常,故实际编程中最好不要直接抛出Exception,而是抛出其子类。
    2. 运行时异常,只需抛出,无需捕获处理(java8允许处理,但是不要画蛇添足)
  • 警告:
    1. Exception的子类中:

      • 必检异常类型常见的有:FileNotFoundException、IOException(可以动手试试,必须处理的异常);
      • 免检异常类型常见的有:NullPointerExceptin、ArithmeticException、IndexOutofBoundsException、IllegalArgumentException(抛出后无需处理的异常)
    2. java没有整数上溢或下溢异常

  • 运行时异常和普通异常:

    • 若出现运行时异常,如NullPointerException,直接导致当前线程中断;
    • 若出现普通异常:
      • 抛出处理:当前线程中断;换句话说,当前线程(的当前代码)不接受你这个异常的存在,我不想理你了。
      • 捕获处理:当前线程不会中断,后续继续处理。你这个异常,当前线程是可以接受的,我还会继续后续处理。

  • 很显然,异常的处理应当视我们的业务逻辑需要,做出相应的合理处置方式。
  • 现在,你总该明白什么时候应该(在方法签名后面)声明异常,什么时候(在方法中)捕获异常了吧?

java异常处理规范的更多相关文章

  1. 根据异常自定义处理逻辑(【附】java异常处理规范)

    ▄︻┻┳═一『异常捕获系列』Agenda: ▄︻┻┳═一有关于异常捕获点滴,plus我也揭揭java的短 ▄︻┻┳═一根据异常自定义处理逻辑([附]java异常处理规范) ▄︻┻┳═一利用自定义异常来 ...

  2. Java 异常处理基本规则,Java异常处理的基本规范

    看了团队中原来代码中的异常处理,心碎了一地,稍微对照阿里巴巴的异常处理规范整理了一遍,准备分享一下,Java的异常处理规范&约束. 一.运行异常的扑捉 不要捕获 Java 类库中定义的继承自  ...

  3. 札记:Java异常处理

    异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...

  4. Java提高篇——Java 异常处理

    异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用Syst ...

  5. Java 异常处理机制和集合框架

    一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:t ...

  6. java异常处理机制 (转载)

    java异常处理机制 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C ...

  7. Java—异常处理总结

    异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出 ...

  8. Java异常处理总结

    题记:本文为工作十年回顾总结系列之Java语言之异常处理篇,主要内容为<Thinking in Java >第四版和<Effective Java>第二版的阅读笔记,网上流传的 ...

  9. Java异常处理机制 —— 深入理解与开发应用

    本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exceptio ...

随机推荐

  1. vs2017安装pygame,vs2017安装python第三方包

    vs2017有独立的python环境:所以想在vs2017开发python并使用第三方包,需要在vs2017中操作,完成第三方包的安装. 一,查看vs2017有哪些版本的python,当前使用的是哪个 ...

  2. 1.docker常用命令

    1.启动交互式容器 $ docker run -i -t IMAGE /bin/bash -i --interactive=true|false 默认是false -t --tty=true|fals ...

  3. Java中string.equalsIgnoreCase("0")与"0".equalsIgnoreCase(string)的区别:

    string.equalsIgnoreCase("0"):如果string为null,会抛出java.lang.NullPointerException异常. "0&qu ...

  4. java-Enumeration,单向队列Queue及双向队列Deque等容器简单使用

    1.Enumeration容器使用: package com.etc; import java.util.Enumeration; import java.util.Vector; /* Enumer ...

  5. 想要在launcher中模拟按home键。

    Intent mHomeIntent = new Intent(Intent.ACTION_MAIN); mHomeIntent.addCategory(Intent.CATEGORY_HOME); ...

  6. 四、View的工作原理

    1.ViewRoot和DecorView ViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完 ...

  7. Servlet工作原理解析 《深入分析java web 技术内幕》第九章

    参考关于servblet的相关文章 侧重概况:https://blog.csdn.net/levycc/article/details/50728921 ibm的相关:https://www.ibm. ...

  8. gitbook 入门教程之发布电子书

    输出目标文件 语法格式: gitbook build [book] [output] 默认情况下,gitbook 输出方式是静态网站,其实 gitbook 的输出方式有三种: website, jso ...

  9. Python+ITchart实现微信中男女比例,城市分布统计并可视化显示

    直接上代码: import itchat import os import csv import pandas as pd from pyecharts import Bar,Pie,Geo impo ...

  10. SQLServer之创建标量函数

    创建标量函数注意事项 在 SQL Server 和 Azure SQL Database 中创建用户定义函数. 用户定义函数是接受参数.执行操作(例如复杂计算)并将操作结果以值的形式返回的 Trans ...