在Java开发中,经常会遇到错误,这个时候就要学到异常处理,当然,学异常处理之前,我们应该先学学异常是什么~
异常就是我们在写代码的时候,爆红啦,高亮啦什么的,还有运行的时候碰到的各种报错啦
我们经常会因为各种各样的报错而头疼——哦!天呐!又报错了!
但是我们应该想想好的,我们编程水平不也随着解决各种各样的报错而提高了吗?
当然我们也可以通过某些方式来避免这种异常,当然这是我们在解决了许许多多的报错后的事啦,也就是现在!是的没错就是现在!O(∩_∩)O哈哈~
一般分为三个类型:编译时错误 、运行时错误 、逻辑型错误
就是在写代码的时候,出现了语法上的错误,比如在定义变量的时候
int i = 1
在这里,我们就犯了个编译时的错误,少打了一个作为每句表达式结束的英文分号
就是语法上没有出现错误,但是编译的时候会出现错误,比如
double[] a = {
1.0, 2.0};
System.out.println(a[3]);
在这里,虽然不会爆红,但是却会在运行的时候出现错误
Index 3 out of bounds for length 2
意思是索引超出范围,我们的数组只有两个长度,却查找第四个元素,很明显是不对的
就是我们的代码不符合逻辑
int a = 1;
int b = 0;
System.out.println(a/b);
就会出现错误
/ by zero
可分为Error和Exception两种,Throwable是Error和Exception的共同父类
Error为错误,是程序无法进行处理的
一般遇到错误,不应该使用异常处理try…catch…
而是修改源代码,进行改良
Error有三个子类:
目前我只见过内存溢出错误,通常是因为某些原因,程序出现死循环导致的
Exxception可以通过代码来避免,分成运行时异常和非运行时异常
运行时异常:RuntimeException
非运行时异常:IOException、SQLException、、
码代码的时候,编辑器不会给你提示,但是会出现错误
public class Ex4_26 {
public static void main(String[] args) {
Integer a = null;
Integer b = 1;
System.out.println(jiSuan(a,b));
}
public static Integer jiSuan(Integer a, Integer b){
Integer c = a + b;
return c;
}
}
public class Ex4_26 {
public static void main(String[] args) {
int[] a = new int[10];
System.out.println(a[10]);
}
}
如果出现运行时异常,通常是程序员的问题,因为这些都是可以通过逻辑上的处理而避免
IOException(IO异常)、SQLException(SQL异常)
我们的程序遇到这种异常通常会直接结束,并会返回报错信息给你
如果我们想要让我们的程序继续运行,我们就需要通过代码对这些异常进行处理
try {
可能会遇到异常的代码块
}catch (){
遇到异常之后,会做的事情
}finally {
不管会不会出现异常都会进行的操作
}
public class Ex4_26 {
public static void main(String[] args) {
String[] a = new String[10];
try {
System.out.println(a[10]);
}catch (ArrayIndexOutOfBoundsException e){
System.out.println(e);
System.out.println("下标越界啦!");
}finally {
System.out.println("不管下标是否越界都会执行");
}
}
}
可以清晰地看到,我们的数组长度只有10,而下标是从0开始的,所以我们查看下标为10的元素的时候,就会出现数组下标越界异常,因此那行代码就是错的,不会被执行,会执行下面的代码
这两天学校开了运动会,有亿点点忙哈哈
希望大家能够多使用异常处理,这对我们的变成生涯很有帮助!
xdm,再见啦·