ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java异常处理

2021-04-05 20:05:15  阅读:170  来源: 互联网

标签:java Test4 处理 void int catch 异常 public


刚看了一些博客,为了自己不会忘记异常所以我再自己写一篇博客让自己好好复习,如果一些不对的地方请大家指出。

异常处理其实不是什么难点,至少我现在是这样认为。
在这里插入图片描述
这就是java异常处理的类的结构,所以的异常都是继承了Throwable,以下有Error 和Exception我们一般在以后的开发中都会可能遇到,一般来说遇到 Error的时候会是一个很严重的错误,比如栈溢出等。
Exception异常我们是遇到会比较的平凡了。我就在这里浅显的给大家介绍一下大致的用法吧!有什么不对的地方大家可以给我指出。

先给大家看一段代码吧!

public class Test4 {
	public static void main(String[] args) {
		int a=1;
		int b=0;
		System.out.println(a/b);
	}

}

大家看到这个代码是什么感觉呢?是不是觉得不对劲,怎么除数变成了0了,所以这一段代码肯定是有问题的了。

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at com.text1.Test4.main(Test4.java:7)

运行就报了这样的一个错误,算术的一个异常。好了,我感觉我好像太罗嗦了,我就直接给大家上代码然后写注释吧。

package com.text1;

public class Test4 {
	/*
	 * 异常处理一共有五个关键词 try catch finally throw throws
	 */
	public static void main(String[] args) {
		int a=1;
		int b=0;
		//经过异常的捕获之后代码不会中断,这是开发中所需要的。
		try {//处理部分,若是代码没有问题会执行,出现异常就会交给catch执行
			System.out.println(a/b);
		} catch (ArithmeticException e) {//捕获异常,出现异常后在这里执行,ArithmeticException这里的意思是代表什么异常看到上面的图我们也可以用Exception来捕获
			System.out.println("除数不可以为零");
		}finally {//不管是否有异常这里都是会执行的,可以省略
			System.out.println("我怎么样都会执行");
		}
		System.out.println("没有中断我还是执行了");
		
	}

}

package com.text1;

public class Test4 {
	/*
	 * 异常处理一共有五个关键词 try catch finally throw throws
	 */
	public static void main(String[] args) {
		int a=1;
		int b=0;
		Test4 test4=new Test4();
		test4.test(a, b);
	}
	public void test(int a,int b) {
		if (b==0) {
			throw new ArithmeticException();//主动抛出异常
		}
	}

}

package com.text1;

public class Test4 {
	/*
	 * 异常处理一共有五个关键词 try catch finally throw throws
	 */
	public static void main(String[] args) {
		int a=1;
		int b=0;
		Test4 test4=new Test4();
		try {
			test4.test(a, b);
		} catch (Exception e) {
			
			e.printStackTrace();
		}
	}
	public void test(int a,int b) throws Exception{//可以主动往外抛,但是在需要使用的时候需要捕获
		if (b==0) {
			throw new ArithmeticException();//主动抛出异常
		}
	}

}

这些其实很简单就是那些关键字的使用,我现在经验还是太少了我看博客是说在项目中可能还是大量需要的。

可能在实际需要的时候你还需要自己写一个异常,我在这里也给大家做一个演示吧。

这是一个自己写的一个异常类

package com.text1;

import javax.swing.plaf.basic.BasicInternalFrameTitlePane.IconifyAction;

public class MyException extends Exception{//继承Exception这个类,要是错误的话就是继承Error都是差不多的
	int a;
	public MyException(int a) {
		this.a=a;
	}

	public String toString() {//这里就是打印的内容,toString 方法大家应该是很熟悉了
		return "这是一个异常"+"你的错误是因为"+a+"数值太大";
	}
	
	

}

package com.text1;

public class Test4 {
	/*
	 * 异常处理一共有五个关键词 try catch finally throw throws
	 */
	public static void main(String[] args) {
	
			try {
				test(11);
			} catch (MyException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
	}
	static void test(int a) throws MyException {
		if (a>10) {
			throw new MyException(a);//这里需要捕获或者抛出,我选择的是抛出,抛出之后要使用的话就是需要捕获千万别忘记了
		}
		else {
			System.out.println(a);
		}
	}

}

这就是异常处理的结果
在这里插入图片描述
好了,异常就先讲到这里了,给大家一点小小的建议吧,就是代码的话还是自己多敲一敲不然真的是那种,你脑子会了,但是手不会,一旦是上手的时候自己就啥都不知道了。

标签:java,Test4,处理,void,int,catch,异常,public
来源: https://blog.csdn.net/pjsmm/article/details/115446456

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有