java记录3--异常
异常的分类
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--异常的更多相关文章
- 关于java中的异常问题 1
1.首先参考一下关于java异常处理方面的知识 查看博客http://lavasoft.blog.51cto.com/62575/18920/ 这里介绍的很好,下面从中学习到一些东西,摘抄如下: 1. ...
- 点评阿里JAVA手册之异常日志(异常处理 日志规约 )
下载原版阿里JAVA开发手册 [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:异常处理 日志规约 本文难度系数为一星(★) 本文为第三篇 ...
- Java学习笔记--异常描述
异常描述 1.简介 为了全面了解"异常"的概念,先来分析一个实例.假定要编写一个Java程序,该程序读取用户输入的一行文本,并在终端显示该文本.这里是一个演示Java语言I/O功能 ...
- java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的
本文将详解java中的异常和异常处理机制 异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常. Java异常的分类和类结构图 1.Java中的所 ...
- Java内存溢出异常(下)
此篇是上一篇文章Java内存溢出异常(上)的续篇,没有看过的同学,可以先看一下上篇.本篇文章将介绍剩余的两个溢出异常:方法区和运行时常量池溢出. 方法区和运行时常量池溢出 这部分为什么会放在一起呢?在 ...
- Java之初学异常
异常 学习异常的笔记记录 异常 异常的概念 指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行. ...
- Java中处理异常的9个最佳实践
Java中的异常处理不是一个简单的话题.初学者很难理解,甚至有经验的开发人员也会花几个小时来讨论应该如何抛出或处理这些异常. 这就是为什么大多数开发团队都有自己的异常处理的规则和方法.如果你是一个团队 ...
- 夯实Java基础系列10:深入理解Java中的异常体系
目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调 ...
- Java学习:异常的概念
异常 异常概念 异常:指的是程序在执行过程中,出现的非正常的情况,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出一个异常对象.Java ...
- java中关于异常的处理
初学java的时候,当我们碰到异常时,一般会把异常直接throws抛出去,或则在catch的时候,简单的写一句打印异常信息,但是在实际开发中,是不能这么做的.如果我们将底层的某一个异常简单的print ...
随机推荐
- yii2关闭(开启)csrf的验证
(1)全局使用,我们直接在配置文件中设置enableCookieValidation为true request => [ 'enableCookieValidation' => true, ...
- JS高级---原型的引入,原型添加的方法解决数据共享
原型的引入:解决:通过构造函数创建对象带来的问题,即浪费内存(一个对象开一个内存,多个对象开多个内存) 通过原型来添加方法,解决数据共享,节省内存空间 <script> function ...
- linux下删除文件夹
---恢复内容开始--- 4月份左右接触linux,一直到现在,收获不多,原因是因为我没有足够的努力,其实这段时间以来我也很自责. 今天学习linux进程调度等知识,使用小红帽时,准备删除一个无用的文 ...
- [蓝桥杯][基础训练]2n皇后问题
Description 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行 ...
- vue基础总结
Vue语法: new Vue({ //挂载: el: '#app', //初始化数据: data: {}, //监听 data 的数据变化: watch: { todos: { //深度监视 hand ...
- Jmeter_接口串联自动化测试_登录后充值获取cookie
1.登陆->充值->运行会报错 2,那如何解决这个问题呢,添加HTTP COokie管理器 另外一种方法,登录->提取正则表达式,充值->添加HTTP cookie管理器
- Linux上FTP部署:基于mariadb管理虚拟用户
FTP原理 FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序.图1 FTP 的基本模型 FTP 是基于客户---服务器(C/ ...
- 【PAT甲级】1084 Broken Keyboard (20 分)
题意: 输入两行字符串,输出第一行有而第二行没有的字符(对大小写不敏感且全部以大写输出). AAAAAccepted code: #define HAVE_STRUCT_TIMESPEC #inclu ...
- pip install cv2 安装报错
pip install cv2 安装报错是一个常见现象: ERROR: Could not find a version that satisfies the requirement cv2 (fro ...
- go.php
<?php $t_url=$_GET['url']; if(!empty($t_url)) { preg_match('/(http|https):\/\//',$t_url,$matches) ...