java 异常概念_java之异常(基本概念)

什么是异常

异常是指程序可以编译,由于程序内部或外部的原因造成的问题。并不等同于错误。错误是指语法上的错误等导致代码不能编译。

8a49b5293bff1417c62cd2853611018b.png

java中所有的异常类都是从Throwable继承来的。Error类是jvm内部出现资源耗尽等问题时报的异常,这类异常往往无法解决。我们这里所讲述的异常都是Exception类中的。

异常可以分为运行时异常(RuntimeException)和已检查异常(IOException等)。

运行时异常往往编译没有问题,在运行时出现错误的异常。例如:数组越界等问题。

330fb95400ddc2935067ddc48820081e.png

运行结果为:

43fe277d39dcd447017bceca9ae44feb.png

已检查异常是代码本身没有问题,但有可能会出现一些问题,在编写代码时需要主动抛出异常或对异常进行捕获。例如:文件找不到异常。

类型异常详细分类参照:菜鸟教程之异常处理

怎么处理异常

一般对异常进行简单的处理,有两种处理方式,捕获和抛出。

1. 捕获异常:使得异常不被抛到方法之外,也不需要throws规范

try{

//可能发生异常的代码

}

catch(异常的类型声明){

//发生异常时执行的代码

}

finally{

//无论是否发生异常都会执行的代码

}

package com.ar.dgh.tese4;

import java.io.UnsupportedEncodingException;

public class Test{

public static void example()

{

String str = null;

byte[] bytes={122,121,120};

try {

str = new String(bytes,"utf-8");

} catch(UnsupportedEncodingException uee) {

}

System.out.println(str);

}

public static void main(String[] args){

example();

}

}

运行结果为:

zyx

finally可以省略,catch可以有多个,捕获多个不同的异常。也可以只有try代码块。

2. 抛出

throw

抛出的是异常的对象,存在在方法体内,执行一定会抛出异常。

throws

抛出的是异常的类型,声明在方法体外,可能会发生异常。

import java.io.UnsupportedEncodingException;

public class Test{

public static void example() throws UnsupportedEncodingException

{

String str = null;

byte[] bytes={122,121,120};

str = new String(bytes,"utf-8");

System.out.println(str);

}

public static void main(String[] args){

example();//此时的方法是不能够被调用的,显示异常

}

无论是抛出异常还是捕获异常都是消极的处理方式,而要解决异常还需要程序员来解决。

自定义异常

在遇到无法用异常类描述的错误时,可以自己定义异常。

定义一个派生于Exception的类,或者其子类的类

定义的类包含两个构造器:默认的构造器,带有详细描述信息的构造器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值