java学习日记07:异常

如何处理异常

---- try-catch-finally
---- throw
---- throws
---- 自定义异常
---- 异常链

什么是异常

异常本质上是程序上的错误。
错误在我们编写程序的过程中会经常发生,包括编译期间的运行期间的错误。
throwable

-Error
-虚拟机VirtualMachineError
-内存溢出OutOfMemoryError
-线程死锁ThreadDeath

-Exception
-非检查异常Unchecked Exception(空指针异常NullPointerException,数组下标越界异常ArrayIndexOutOfBoundsException,算数异常ArithmeticException,类型转换异常ClassCastException)
-检查异常Checked Exception
在这里插入图片描述

异常处理

在Java应用程序中,异常处理机制为:
抛出异常:异常对象(异常类型,异常出现时的程序状态 )
捕捉异常:对于运行时异常,错误或可查异常,Java技术所要求的异常处理方式有所不同。

Java规定:对于可查异常必须捕捉,或者声明抛出。允许忽略不可查的RuntimeException(含子类)和Error(含子类)。

通过5个关键字来实现:try,catch,finally.throw,throws
在这里插入图片描述

try-catch-finally

try块后可接零个或多个Catch块,如果没有catch块,则必须跟一个finally块。

package com.imooc.test;

import java.util.InputMismatchException;
import java.util.Scanner;
public class TryDemoOne {
	public static void main(String[] args) {
	/*	//要求:定义两个整数,输出两数之商
		int one = 12;
		int two = 2;
		System.out.println("one和two的商是:"+(one/two));
	*/
		//要求:定义两个整数,接受用户的键盘输入,输出两数之商
		Scanner input = new Scanner(System.in);
		System.out.println("======运算开始======");
		try{
			System.out.println("请输入第一个整数:");
			int one = input.nextInt();
			System.out.println("请输入第二个整数:");
			int two = input.nextInt();
			System.out.println("one和two的商是:"+(one/two));
		}catch(ArithmeticException e) {
			System.exit(1);//终止程序允许,可以写非0的任意值,可以终止任意程序
			System.out.println("除数不允许为零");
			e.printStackTrace();
		}catch(InputMismatchException e) {
			System.out.println("请输入整数");
			e.printStackTrace();
		}catch(Exception e) {
			System.out.println("出错啦~~~");
			e.printStackTrace();
		}finally {
			System.out.println("=====运算结束=====");
		}
	}
}

throw&throws

可以通过throws声明将要抛出何种类型的异常,通过throw将产生的异常抛出
throws语句用在方法定义时声明该方法要抛出的异常类型
当方法抛出异常列表中的异常时,方法将不对这些类型及其子类类型的异常作处理,而抛向调用该方法的方法

异常链
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值