欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA中的异常-知识整理

程序员文章站 2023-12-01 16:21:34
学了JAVA数组之后,开始整理一下异常的部分;JAVA相比于C语言多了异常处理部分,于我而言的话,学习异常的时候总有一个问题,为什么能用if-else处理的问题,非要再用一个新模块异常来解决。之后在看书的时候明白了这个问题的答案,同样分享出来;首先看下面这个伪语言描述的例子,这是伪代码不能运行的;openTheFile;determine its size;allocate that much memory;read-file;closeTheFile;他的功能是打开文件,读...

学了JAVA数组之后,开始整理一下异常的部分;
JAVA相比于C语言多了异常处理部分,于我而言的话,学习异常的时候总有一个问题,为什么能用if-else处理的问题,非要再用一个新模块异常来解决。
之后在看书的时候明白了这个问题的答案,同样分享出来;
JAVA中的异常-知识整理
首先看下面这个伪语言描述的例子,这是伪代码不能运行的;

	openTheFile;
	determine its size;
	allocate that much memory;
	read-file;
	closeTheFile;

他的功能是打开文件,读取内容,读完关闭文件;
根据文件的大小分配内存空间。
如果在没有学习异常的时候,我们要让程序变得perfect;
就要进行条件判断;

openTheFile;
	if(theFilesOpen) {
		determine the length of the files;
		if(gotTheFileLength) {
			allocate that much memory;
			if(gotEnoughMemorry) {
				read the file into memoory;
				if(readField) {
					errorCode=-1;
				}
				else {
					errorCode=-2;
				}
			}
			else {
				errorCode=-3;
			}
		}
		else {
			errorCode=-4;
		}
	}
	else {
		errorCode=-5;
	}

可以看出这段代码增加了很多判断语句,目的是保证在前一步正确的情况下再执行下一跳语句,是不是很繁琐,那如果用异常的话应该怎么处理呢;
先看知识点,最后结尾再看一下异常如何处理;
JAVA中的异常-知识整理

这里不太多复述基础知识点,直接看重点;

一、try-catch处理异常;

我们用例子来说明:

	int i=4;
	int arr[]= {1,2,3,4};
	try {
		System.out.println(arr[i]);
	}
	catch(ArrayIndexOutOfBoundsException e) {
		System.out.println("下标越界");
	}


}

这里我们定义了一个大小为4的数组arr;
我们知道arr【4】这个元素是不存在的,如果我们输出的话JAVA会给你报一个异常,所以我们就用这种方法来处理异常;
看代码:
try中的部分是有可能出现异常的代码部分;
catch中,括号内是抛出的异常,例子中就是下标越界的异常;
然后大括号里面要怎样处理异常的代码部分;
最后也可以加一个finally{};就是最后执行的代码;
JAVA中的异常-知识整理

JAVA中为了方便给了我们一些公用的异常(也就是catch中括号里面的部分);

二、公共异常

1,ArithmeticException
整数除法除数为0的异常;
2,NullPointerException
对象没有实例化,访问该对象时的异常;
3,ArrayIndexOutOfBoundsException
数组下标异常(例子中的就是)
4,FileNotFoundException
存取一个不存在的文件时的异常;
5,IOException
通常的I/O错误引发的异常

当然还有一些其他的,我只是拿出了几个比较典型的,如果有需要得自己查阅资料了;
JAVA中的异常-知识整理

三、抛出异常和自己创建异常;

有些时候,我们要自己定义一些范围或者类型,那在JAVA中是不报错也不报异常的,比如说矩阵的相乘需要第一个行数等于第二个的列数,JAVA是不会管你是不是相等(雨我无瓜);
这个时候我们就要用到自己创建异常了;

还是,我们用例子来说明;
首先我们新建一个类MyException;

public class MyException extends Exception{

	public String toString() {
		return "对不起,报异常了";
	}
	

}

我们让这类继承于Exception这个父类;
然后重写类的toString函数;

然后再建一个类,我用的是以前的就不要在意名字了;

public class Array{
	static public void compute(int a) throws MyException {
		if(a<5) {
			System.out.println(a);
		}
		else {
			throw new MyException();
		}
	}
	

	
}

我们在这个类中写了一个compute函数,函数里有一个int型的参数,然后呢;
记住在后面加上throws MyException;
我们在函数里面判断,如果参数小于5;
我们就输出这个参数;
反之的话,我们就抛出MyException这个异常;
这样这个函数就写完了;

然后来到主函数;

public static void main(String[] args) {
	Array a=new Array();
	try {
		a.compute(10);
	}
	catch(MyException e) {
		System.out.println(e);
	}


}

我们创建对象后,调用compute函数,参数给的10>5;
运行后控制台会输出“对不起,报异常了”。
这个就是我们自己写的异常;
关于基础的自定义异常的步骤基本就这三部;
至于其他更复杂的就要自己去尝试并学习了;
JAVA中的异常-知识整理

然后回过头来说最开始的那地方;
如果用try-catch处理的话,应该会了吧;

	try {
		openTheFile;
		determine its size;
		allocate that much memory;
		read-file;
		closeTheFile;
	}
	catch() {}
	catch() {}
	catch() {}

就像这样的代码了,是不是的确更清楚而且代码量也会变少;
JAVA中的异常-知识整理
关于异常,就说这些,OK;
结束;
END;

本文地址:https://blog.csdn.net/weixin_46726346/article/details/107062237