java异常处理

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

异常处理其实不是什么难点,至少我现在是这样认为。
java异常处理
这就是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异常处理
好了,异常就先讲到这里了,给大家一点小小的建议吧,就是代码的话还是自己多敲一敲不然真的是那种,你脑子会了,但是手不会,一旦是上手的时候自己就啥都不知道了。

上一篇:python中字符串的常用拼接


下一篇:命令行传参