java异常处理
来源:互联网 发布:亚马逊windows 编辑:程序博客网 时间:2024/06/03 12:44
java异常处理
java异常机制
- 首先什么叫做异常呢
异常指的是程序中出现的非致命性的,通过修正还能继续执行的错误叫做异常,如果出现了致命性的错误那就不叫异常了。 产生异常的几种情况
java虚拟机检测到了异常,这些异常可能是以下几种情况造成的:
1.表达式计算违反了语义,如整数被零除。
2.超出了某些资源的限制,如使用了太多的内存。java中的throw语句被执行,异常被抛弃时。
- 异常同步发生,由以下原因引起:
1.thread的stop方法被调用
2.java虚拟机内部错误发生
Error和Exception
他们都继承了throwable类,error通常指的是错误通常都是不可能通过代码来解决的问题,在程序中我们不会捕获error。
exception指的是异常,我们在程序中通常捕获的是Exception和Exception的子类的异常,它们又分为运行时异常和非运行时异常。
java中如何进行异常处理
1.try … catch … finally…
try{ // 可能发生异常的程序代码}catch(异常类型1 异常的变量名1){ // 异常处理程序代码}catch(异常类型2 异常的变量名2){ // 异常处理程序代码}catch(异常类型3 异常的变量名3){ // 异常处理程序代码}finally{//最终执行,这一段代码一定会执行。}//finally{}可以省略
2.使用throws抛出异常
使用throws可以抛出一个或者多个异常,形式如下:
public void withdraw(double amount) throws RemoteException, InsufficientFundsException { // Method implementation }
3.通过throw抛出异常
抛弃的异常必须是Throwable或其子类的实例,形式:
throw 异常名
4.自定义异常
通过定义一个Exception来的子类来自定义一个非运行时异常;定义一个RuntimeException来的子类来自定义一个运行时异常。
通过如下形式来自定义异常:
class MyException extends Exception{}//或者class MyException extends RuntimeException{}
demo:
import java.io.IOException;public class Test { public static void main(String[] args) throws ArithmeticException { // TODO Auto-generated method stub int a[] = new int[2]; try { System.out.println("获取a[3]:" + a[3]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Exception thrown :" + e); } catch (Exception e) { e.printStackTrace(); } finally { System.out.println("The finally statement is executed"); } try { int z = 2; throw new MyException(); } catch (MyException me) { me.printStackTrace(); } }}
public class MyException extends Exception{ public MyException(){ super(); } public MyException (String msg){ super(msg); } public MyException(String message, Throwable cause) { super(message, cause); } public MyException(Throwable cause) { super(cause); }}
阅读全文
0 0
- 【java】java异常处理
- java异常和异常处理
- Java 异常及异常处理
- java异常与异常处理
- Java异常处理-----自定义异常
- Java异常与异常处理
- java异常及异常处理
- Java 异常与异常处理
- Java异常与异常处理
- Java异常及异常处理
- Java异常处理--自定义异常
- JAVA异常之异常处理
- Java异常处理-----自行处理
- Java异常处理-----抛出处理
- Java异常处理-----抛出处理
- java异常处理
- java 异常处理分析
- java异常处理
- SQL注入攻击与防御的一些姿势
- python文件打开参数区别
- Intellij-IDEA-maven+springMVC+mybatis整合DEMO
- sql的相关技术杂谈
- 台湾清华彭明辉教授的研究生手册
- java异常处理
- BootStrap框架总结
- Linux
- 经典ASP.NET打印技术
- centos7 firewall 防火墙 命令
- CSS div水平垂直居中和div置于底部
- sql语句case when的使用
- mvc与三层结构终极区别
- HDU 3714