异常的分类

1.Error

由java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等等,JAVA程序无法对此错误

try
{
//可能出现异常的代码块
}
catch(exception1 )
{
//产生异常1的处理措施
}
catch(exception 2)
{
//产生异常2的处理措施
}
。。。。
finally
{
//无论是否捕获异常都必须处理的代码
}

进行处理

2.RUNTIME EXCEPTION

java虚拟机在运行时产生的异常,如0做分母,数组下标越界,其产生比较频繁,处理麻烦,对程序可读性和运行效率影响太大,因此由系统检测

用户可不做处理。

3.EXCEPTION

一般程序中可预知的问题,其产生的影响可能会带来意想不到的结果

因此Java虚拟机要求java程序必须捕获或声明所有的非运行时异常

//捕获异常相关问题

try
{
语句1;//一旦语句1出现异常,则语句2永远得不到执行
语句2;
} catch (exception1 e)
{......} catch (exception e)
{......} finally{....}//无论try中代码是否抛出异常
//finally中代码都会得到执行,通常在finally语句可以进行资源的清除工作

3.throw

3.1用来抛出异常     格式:throw new 异常名(参数);

3.2假设f方法抛出了A异常,则f方法由2种方式来处理A异常

throws A//谁调用f方法,谁处理A异常,本身不处理

try。。catch//自己处理

ps:要抛出的异常必须得是throwable的子类

4.throws

格式 void f()throws A

{。。。}

4.1 throws A表示调用f方法时f方法  可能  会抛出A类异常 , 建议  你调用f方法时最后对可能抛出的异常进行捕捉

4.2throws A不表示f方法一定会抛出A类异常,不表示调用f方法时,必

须对A异常进行捕捉

例如假设A是runtime exception子类异常,可以处理也可以不处理

class c extends Throwable
{
public void f()
{
throw new RuntimeException();//不报错
}
}
public class A
{
public static void main(String [] args)
{ }
}

ps:1.所有的catch最多只能有一个被执行,也可能所有的catch都没有被执行

2.先catch子类异常再catch父类异常,如果相反则编译时会报错

3.重写方法抛出异常的范围不能大于被重写方法排除的异常范围

//自定义异常A
class A extends Excepion
{
} //自定义异常B
class B extends Exception
{
} //自定义异常C
class C extends Exception
{
} class M
{
void f() throws A, B
{
}
} class N extends M
{
void f() throws A,B //可以throws A或B,也可以throws A,B
也可以不throws,但不可以throws C
即"子类覆盖了父类方法时,子类方法抛出异常的范围不能大于父类方法抛出的异常范围"
{
}
} class Test
{
public static void main(String[] args)
{}
}

java记录3--异常的更多相关文章

  1. 关于java中的异常问题 1

    1.首先参考一下关于java异常处理方面的知识 查看博客http://lavasoft.blog.51cto.com/62575/18920/ 这里介绍的很好,下面从中学习到一些东西,摘抄如下: 1. ...

  2. 点评阿里JAVA手册之异常日志(异常处理 日志规约 )

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:异常处理 日志规约 本文难度系数为一星(★) 本文为第三篇 ...

  3. Java学习笔记--异常描述

    异常描述 1.简介 为了全面了解"异常"的概念,先来分析一个实例.假定要编写一个Java程序,该程序读取用户输入的一行文本,并在终端显示该文本.这里是一个演示Java语言I/O功能 ...

  4. java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的

    本文将详解java中的异常和异常处理机制 异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常. Java异常的分类和类结构图 1.Java中的所 ...

  5. Java内存溢出异常(下)

    此篇是上一篇文章Java内存溢出异常(上)的续篇,没有看过的同学,可以先看一下上篇.本篇文章将介绍剩余的两个溢出异常:方法区和运行时常量池溢出. 方法区和运行时常量池溢出 这部分为什么会放在一起呢?在 ...

  6. Java之初学异常

    异常 学习异常的笔记记录 异常 异常的概念 指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行. ...

  7. Java中处理异常的9个最佳实践

    Java中的异常处理不是一个简单的话题.初学者很难理解,甚至有经验的开发人员也会花几个小时来讨论应该如何抛出或处理这些异常. 这就是为什么大多数开发团队都有自己的异常处理的规则和方法.如果你是一个团队 ...

  8. 夯实Java基础系列10:深入理解Java中的异常体系

    目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调 ...

  9. Java学习:异常的概念

    异常 异常概念 异常:指的是程序在执行过程中,出现的非正常的情况,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出一个异常对象.Java ...

  10. java中关于异常的处理

    初学java的时候,当我们碰到异常时,一般会把异常直接throws抛出去,或则在catch的时候,简单的写一句打印异常信息,但是在实际开发中,是不能这么做的.如果我们将底层的某一个异常简单的print ...

随机推荐

  1. ElementUI+Vue在使用el-dialog时,如何做到在弹出dialog时,外部呈锁定状态,而不是点击外部导致dialog直接关闭。

    ElementUI+Vue在使用el-dialog时,如何做到在弹出dialog时,外部呈锁定状态,而不是点击外部导致dialog直接关闭. 问题描述 今天,在做Element+Vue项目时发现:Di ...

  2. SOCV / POCV 模型 (3)

    STA无疑是数字集成电路设计实现方法学中最『漂亮』的模型之一,但是随意着工艺进步,local varition 的随机性及重要性增加,传统STA 的局限性日渐突出.大概在十五年前,SSTA成了一个研究 ...

  3. vue去掉地址栏# 方法

    超简单 export default new Router({ //将mode 设置为‘history‘ 即可.默认情况是’hash’ 所以会有丑陋的# mode: 'history', routes ...

  4. 归并非递归、快排递归及非递归的C++实现及时间效率对比。。

    今天看剑指offer突然发现下学期都要去面试了,还没自己实现过快排非递归和归并非递归,这怎么能行呢,于是就写了一下. (虽然有点卡壳,又回去翻了下算导,还是顺利写出来了) 先放图: 一亿数据量: #p ...

  5. max=(a>b)?a:b;

    这个函数的意思是如果a>b,max=a:否则max=b. 实际程序: while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Sta ...

  6. 分布式一致性协议 --- Paxos

    问题 Paxos 到底解决什么样的问题,动机是什么 Paxos 流程是怎么样的? Paxos 算法的缺陷是什么 概述 Paxos 是分布式一致性算法,根据少数服从多数的原则多个节点确定某个数值.通过学 ...

  7. 基于SILVACO ATLAS的a-IGZO薄膜晶体管二维器件仿真(07)

    今天主要解决一下defect语句: defect region=1 nta=1.55e20 wta=0.013 wtd=0.12 ngd=6.5e16 wga=2 ntd=1.55e20 ngd=0 ...

  8. HBase的完全分布式搭建

    一.HBase的安装模式 ①单机安装:不依赖于Hadoop的HDFS,配置完即可使用,好处是便于测试,坏处是不具备分布式数据存储的能力. ②伪分布式安装:单台主机模拟真实环境. ③完全分布式安装:多台 ...

  9. Booth算法: 补码一位乘法公式推导与解析

    以下讲解内容出自<计算机组成原理(第三版)>(清华大学出版社) 大二学生一只,我的计组老师比较划水,不讲公式推导,所以最近自己研究了下Booth算法的公式推导,希望能让同样在研究Booth ...

  10. @Value注解的使用

    前提它需要在spring 管理的Bean中有效 (如@Service...) #{...} 此方式可以使用 SpEL 表达式如 #{30-15} ${...} 可以获取配置文件中的值 如 ${jwt. ...