异常
时间:2019-09-28
本文章向大家介绍异常,主要包括异常使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
异常的概念和分类
- 概念:java提供处理程序错误的一种机制
- 分类:Throwable所有错误和异常的超类
Error:称为错误,由java虚拟机生成并抛出,包括动态连接错误虚拟机错误,程序对其不做处理
Exception:所有异常类的父类 - Exception:分为运行时异常RuntimeException,检查异常CheckedException
RuntimeException可能发生在Java运行期间抛出的异常
CheckedException编译期间出现的错误,编译器会强制程序去捕获此类异常
异常的产生和传递
- 产生
1)NUllPointerException:空指针异常,操作一个null对象的属性和方法时,会抛出该异常
2)OutofOutoMemoryError:要分配的对象的内存超过了当前最大的堆内存
3)IOException:对磁盘文件进行操作时,经常会遇到
4)FileNotFoundException:文件找不到
5)ClassNotFoundException:找不到类,一般是该路径下找不到class类
6)ClassCastException:类转换异常
7)NoSuchaMethodException:没有该方法,一般发生在反射调用该方法的时候
8)IndexOutOfBoundsException:数组下标越界
9)ArithmeticException:算术异常
10)SQLException:数据库异常 - 传递
throws抛异常
异常的处理
1)try...catch语句块处理
2)throws抛出处理
自定义异常
要求:
1)类名最后为Exception,继承Exception或者RuntimeException(如果异常可以不被处理)
2)构造方法
public MyException() {}
public MyException(String message) {super(message);}
3)自定义异常,并抛出
throw new MyException(message)
throws MyException
4)该方法抛出异常
5)用try{调用该方法} catch(MyException e){e.printStackTrace();}
实例:
package com.java.exception;
/**
* @Auther: NightRain Lemon
* @create time: 2019/9/28 17:46
* @Description: 自定义异常
*/
//1. 继承RuntimeExceptio
public class ExceptionDemo01 extends RuntimeException {
//2. 构造方法
public ExceptionDemo01() {}
public ExceptionDemo01(String message) {
super(message);
}
}
class Main {
public static void main(String[] args) {
int i = -1;
//用try...catch处理自定义异常
try {
MyException(i);
} catch (ExceptionDemo01 e) {
e.printStackTrace();
}
}
//自定义异常,并抛出
public static void MyException(int i) throws ExceptionDemo01 {
if (i < 0) {
throw new ExceptionDemo01("233");
}
}
}
原文地址:https://www.cnblogs.com/nightrainlemon/p/11604184.html
- HTML语义化:HTML5的新标签及IE5.5~9的部分兼容方案
- TCP/IP(八)之总结TCP/IP四层模型
- 在Orchard中使用Image Gallery模块
- CentOS7设置IP地址
- 服务器端Javascript
- ASP连接数据库
- 彻底隐藏你HTML网页的源代码
- java学习:JMM(java memory model)、volatile、synchronized、AtomicXXX理解
- 使用CSS制作文字环绕图片效果(文字内容包含<li>标签)
- ClojureScript魔法堂:搭建开发环境
- PHP error_reporting() 错误控制函数功能详解
- centos上安装elasticsearch 5.5.1 遇到的各种坑
- 概率论08 随机变量的函数
- @Transactional导致AbstractRoutingDataSource动态数据源无法切换的解决办法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 当Excel遇到大数据问题,是时候用Python来拯救了
- PySCF程序包平均场计算的一些收敛技巧
- 你应该知道的10个Python文件系统方法
- 适合初学者的Python装饰器的简易教程
- 一起刷Leetcode第一篇,数组和字典的妙用
- 加速Python列表和字典,让你代码更加高效
- 如何使用Python的Flask和谷歌app Engine来构建一个web app
- 如何用Python实现电子邮件的自动化
- 在Win下安装Visual Studio和Parallel Studio XE
- 我们将项目语言从Python转向Go的5个原因
- GFN-xTB的编译与API使用
- 红外光谱的理论计算
- 一起刷题(leetcode)第二篇:如何用Python实现递归
- 如何成为Python的数据操作库Pandas的专家?
- 谈谈Gaussian软件中的guess=mix