android基础学习-java篇day7-step3-第一节:java异常

什么是异常?

指的是程序本质上的错误。

在程序运行过程中,意外发生的情况,背离我们程序本身的意图的表现,都可以理解为异常。

 异常分类

Error:是程序无法错了的错误,表示运行应用程序中较严重的问题。

Exception:是程序本身可以处理的异常。异常处理通常指针对这种类型异常的处理

RuntimeWxcept:非检查异常,系统不会强制要求你处理异常

异常处理: 

try-catch-finally结果处理异常

try后面可以跟多个catch,处理不同类型的异常。

TryDemoOne.java

package com.demo.day7.exception;

import java.util.Scanner;

public class TryDemoOne {
	/*
	 * try-catch-finally结构处理异常:保证程序出现异常后,整个结构能正常运行
	 */

	public static void main(String[] args) {
		try {//捕获这块可能出现代码异常
		// 定义两个整数,由键盘输入,并输出其商
		System.out.println("======计算开始====");
		System.out.print("请输入第一个整数:");
		Scanner sc=new Scanner(System.in);
	    int one=sc.nextInt();
	    System.out.print("请输入第二个整数:");
	    int two=sc.nextInt();
	    System.out.println("one和two的商是:"+(one/two));
      //System.out.println("======计算结束====");
		}
		
		catch(Exception e) {//处理try捕获到的异常
			e.printStackTrace();//打印出异常,重下往上看
			
		}
		finally {//不管有没有异常都执行
			System.out.println("======计算结束====");
		}
	}

}

输出结果:

======计算开始====
请输入第一个整数:12
请输入第二个整数:a
java.util.InputMismatchException
======计算结束====
	at java.util.Scanner.throwFor(Scanner.java:864)
	at java.util.Scanner.next(Scanner.java:1485)
	at java.util.Scanner.nextInt(Scanner.java:2117)
	at java.util.Scanner.nextInt(Scanner.java:2076)
	at com.demo.day7.exception.TryDemoOne.main(TryDemoOne.java:18)

注意事项:

  1. Exception是所以异常的父类,所以在多重catch中,必须放在末尾,处理前面子类无法处理的异常。
  2. 终止finally执行的语句:System.exit(1);
  3. finally语句块中,return会依据finally语句的强制执行特点,也强制执行,将在try和catch中的return屏蔽掉
  4. Exception的父类是Throwable

使用throws声明异常类型:

 如果一个方法可能出现异常,但是这个方法没有处理异常的能力,可以在方法声明处用throws来声明跑出异常,

谁使用这个方法,谁就要对这个异常进行处理。

通过throws跑出异常时,针对可能出现的多种异常情况,解决方案:

  1. -throws后面接多个异常类型,中间用逗号分隔
  2. -throws后面接Exception

throw抛出异常

 

throw抛出异常的处理方式: 

 

自定义类异常

 

异常链:

-1、throw new(Exception e,e); 第二个参数是上一个扔出来的异常信息。 

-2、 Exception e1=new Exception(); e1.initCause(e);

总结:

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值