异常-JAVA
#异常
##1.异常处理概述
1.异常时程序在执行过程中所产生的问题。导致异常的原因的有很多种,包括:
1. 用户输入了无效数据
2. 找不到一个需要打开的文件
3. 在通讯过程中网络连接断开
4. JVM发生了内存溢出。
2.异常分为三类:
1. 检查异常:检查异常通常是用户错误或者不能被程序员所预见的问题。例如,如果要打开一个文件,但无法找到该文件,此时就会产生异常。
2. 运行时异常:运行时异常是一个程序在运行过程中可能发生的,可以被程序员避免的异常类型。例如:数组越界、除数为0、引用为null、把引用类型转换为一个无效的数据类型等。
3. 错误:实际上错误根本不是异常,但却是用户或程序员所无法控制的问题。如发生调用栈溢出。
##2.异常控制流程
异常时被一个方法抛出的对象,当一个方法被调用时,这个方法被压入到内存的方法调用栈中。当一个方法抛出异常时,该方法从调用栈中被弹出同时产生的异常对象抛给了栈中的前一个方法。
##3.Thowable类
Throwable类有两个子类:Exception和Error.Error类是所有Java错误类的父类;Exception类是所有异常的父类,包括运行时异常和检查异常。例如:ArratIndexOutOfBoundsException和ArithmeticException是运行时异常。IOException和ClassNotFoundException是检查异常。
##4.捕获异常
在Java中我们通常在一个方法中使用try和catch关键字来捕获异常。
try{
//被保护的代码块
}catch(异常的名称 e1){
//捕获块
}
多个异常块可用多个catch捕获,但是小范围异常放在前面,大范围异常放在后面。
##5.异常声明
如果一个方法没有处理检查异常,那么该方法必须使用throws关键字来声明异常。关键字throws出现在方法签名的末尾。例如:
public void deposit(double amount)throws RemoteException
##6.异常抛出
我们可以通过throw关键字来抛出异常,这个异常可以是一个新的异常实例,也可以是一个我们刚刚捕获的异常。throw语句将导致当前代码立即停止运行,而且异常将被抛给调用栈中前一个方法
##7.throws与throw区别
throws声明某个方法有可能产生某个异常
throw在方法中抛出某个具体的异常。
异常-JAVA的更多相关文章
- 异常:java.lang.LinkageError: loader constraint violation: when resolving interface method
异常:java.lang.LinkageError: loader constraint violation: when resolving interface method "javax. ...
- android异常: java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused
android手机做下载文件时,报了如下异常: java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused 模拟器 ...
- socket编程报异常java.io.EOFException
一个客户端连接服务器的小程序,服务器端可以正常读取客户端发来的数据 但是当客户端关闭时,服务端也关闭了,并且抛出如下的异常: java.io.EOFException at java.io.DataI ...
- 异常java.lang.IllegalArgumentException:attempt to create delete event with null entity
异常java.lang.IllegalArgumentException:attempt to create delete event with null entity解决:路径问题,前台jsp和ja ...
- spring异常 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet
spring异常 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet 情况 ...
- Storm 执行异常 java.lang.RuntimeException: java.nio.channels.UnresolvedAddressException 问题解决
最近写的 binlog2kafka storm job 上线在一个新的集群环境中(storm 0.9.0.1, kafka 0.8), storm job 运行时报出如下异常: java.lang.R ...
- maven(多个模块)项目 部署 开发环境 问题处理历程【异常Name jdbc is not bound in this Context 异常java.lang.NoSuchMethodE】
maven(多个模块)项目 部署 开发环境 问题处理历程[异常Name jdbc is not bound in this Context 异常java.lang.NoSuchMethodE] 201 ...
- AES加解密异常java.security.InvalidKeyException: Illegal key size
AES加解密异常 Java后台AES解密,抛出异常如下:java.security.InvalidKeyException: Illegal key size Illegal key size or ...
- 异常-java.util.concurrent.TimeoutException: Futures timed out after [100000 milliseconds]
1 详细异常 java.util.concurrent.TimeoutException: Futures timed out after [100000 milliseconds] at scala ...
- 项目启动异常,java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' befo ...
随机推荐
- js初学必知三重点
这里列出了一些JS重要知识点(不全面,但自己感觉很重要).彻底理解并掌握这些知识点,对于每个想要深入学习JS的朋友应该都是必须的. 讲解还是以示例代码搭配注释的形式,这里做个小目录: JS代码预解析原 ...
- TDirectory.GetFiles获取指定目录下的文件
使用函数: System.IOUtils.TDirectory.GetFiles 所有重载: class function GetFiles(const Path: string): TStringD ...
- 编程书籍分享--pdf
作为程序员,我觉得我们应该多学习.多思考.多分享. 今天就花费了一点时间把这几年搜集的编程资料上传到了网上做个分享, 其中涵盖.net .java.js.html5.css3.mysql.sqlser ...
- APNs推送, 处理通知
设备接到apns发来的通知,应用处理通知有以下几种情况: 1. 应用还没有加载 这时如果点击通知的显示按钮,会调用didFinishLaunchingWithOptions,不会调用didReceiv ...
- C++ 类族的设计
- 类族的设计] 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员 ...
- Steam游戏黑屏与游戏直接安装方法
黑屏原因主要是360禁止了反作弊进程,解决方法: Steam游戏目录: Steam\steamapps\common\*** 例如黎明杀机,备份时候可直接备份该目录下 Dead by Daylight ...
- 存储过程&Function
存储过程&Function 编号 类别 ORACLE MYSQL 注释 1 创建存储过程语句不同 create or replace procedure P_ADD_FAC( id_fac ...
- python多重继承:
除了从一个父类继承外,Python允许从多个父类继承,称为多重继承. 多重继承的继承链就不是一棵树了,它像这样: class A(object): def __init__(self, a): pri ...
- bzoj 3052: [wc2013]糖果公园 带修改莫队
3052: [wc2013]糖果公园 Time Limit: 250 Sec Memory Limit: 512 MBSubmit: 506 Solved: 189[Submit][Status] ...
- Codeforces Round #198 (Div. 2) —— C
C题很容易看懂题目,不过两个循环肯定会TLE,所以得用点小聪明: 首先排好序,因为是全排列,乱序和顺序的结果是一样的: 然后呢···· 如果是数列 1 2 3 4 5 元素1 被 2 3 4 5每个减 ...