码迷,mamicode.com
首页 > 其他好文 > 详细

异常处理机制总结

时间:2020-09-04 17:28:48      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:error   bsp   item   就会   boolean   string   必须   调用   find   

异常概述

为甚么要处理异常呢?对于每位初学者都有这个疑问.

首先来了解什么是异常

异常就是程序在运行时出现的,不正常的情况或结果.

而假设异常没有处理,会导致程序中断,以致造成损失.(特别是开发中)

 

异常的继承体系,Exception和Error是Throwable的子类分别表示错误和异常.

对于Error我只需了解一般不做处理,这个只能通过修改代码.

常见的错误有:

1.StackOverflowError:这个是栈溢出,指的是递归到深处没有出口而导致的

2.OutOfMemoryError:内存溢出,当没法创建一个新的对象时,就会出现这个错误

Exception这才是今天的重点

异常表示的就是程序运行时,出现不正常的情况,一般大都是轻度或中度的问题属于可预测,可恢复的.

如,数组索引越界,除数为0,诸如此类.

常见异常

ArithmeticException:算数运算异常,当出现异常运算条件时,如除数为0.

NumberFormatException:数据格式转换异常,如Intager i=Intager.parseInt("123a");

NullPointException:空指针异常,当应用程序试图在需要对象的地方使用了null,抛出的异常

ArrayOutOfIndexBoundsException:用非法索引访问数组抛出的异常

捕获异常

一但出现异常,程序会立即终止,所以在开发中一定要处理异常.

而处理异常一般有两种方式,捕获和抛出,不做处理

现在说说捕获异常,

分为单个捕获

try{

//可能出现问题的语句;
}catch(要捕获的异常 变量){

//处理捕获到异常的代码
}
//如果后面还有代码就无论try是否执行,这里都会执行

多个捕获异常

try{
//可能出现异常的语句;

}catch(捕获的异常A类型 变量){

//可能出现异常的语句;
}catch(捕获的异常B类型 变量){


}......

finally语句块(当有必须执行的代码时,可以放入finally语句块(不能单独使用)但也有不执行的情况,JVM结束方法,System.exit(0);)

一般我们会在里面放置关闭资源的语句.

抛出异常

一种是自身抛出异常,不处理,而抛出异常,有两种:

  • 方法里面会出现异常,但方法不想处理这个异常,使用throw抛出异常对象。

  • 方法里面可能会产生异常,自身不想处理,提醒调用该方法的方法做需要处理,使用throws关键字。(提示可能出现的异常)

抛出异常

public class TryCatchFinallyDemo{
public static void main(String[] args) {
isExit("will");
}

public static boolean isExit(String name) throws RuntimesException{//声明异常
String[] username={"will","lucky","funny"};
if(name!=null&&name.trim().length()!=0){
for(String ele: username){
if(name.equals(ele)){
throw new RuntimesException("用户名已存在");//手动抛出异常对象
}
}
}
return false;
}

throws方法上声明可能抛出的异常类型

public class 类名 throws 提示异常名称.....{
    
}

**你与调用方法的人都选择抛出异常时,程序会直接交给JVM处理,此时它的处理方式就是System.exit(0)关闭程序

所以最好的处理异常方式还是自己处理!!!

异常处理机制总结

标签:error   bsp   item   就会   boolean   string   必须   调用   find   

原文地址:https://www.cnblogs.com/weiwo/p/13569865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!