前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Monkey Java》课程7.0之Java当中的异常

《Monkey Java》课程7.0之Java当中的异常

作者头像
GitOPEN
发布2019-01-29 11:01:46
3880
发布2019-01-29 11:01:46
举报

本节课程将学习以下内容:

  • 什么是异常
  • 异常的分类
  • try…catch…finally结构的使用方法
  • throw的作用
  • throws的作用

什么是异常

含义:

  • 在面向对象的世界中,异常也是对象;
  • 我们自己的话说,Java程序在正常运行中,出现的一些意外,被称为异常。
  • 定义:中断了正常指令流的事件;
  • 异常和语法错误是不同的东西;
  • 语法错误在编译的时候就会报错;而异常是在运行的时候抛出来的。

格式:

代码语言:javascript
复制
Exception in thread "main" java.lang.ArithmeticException: / by zero
	at Demo5.main(Demo.java:3)

例子1:

这个例子它报上面格式中的错误。

代码语言:javascript
复制
class Demo{
  public static void main(String[] args) {
    int i = 1 / 0;
  }
}

异常的分类

  • 所有的异常都是Throwable的直接子类;
  • 有2个这样的类Exception和Error;
  • Error是JVM在运行是产生的错误,一旦产生它,JVM就会直接关闭;
  • Error也有各种子类;
  • Exception就是我们学习的异常,它也有很多子类,我们将在开发中遇到;
  • Exception分为两大类:运行时异常和编译时异常;
  • 异常被捕捉后,程序可以正常运行和编译。

try…catch…finally结构的使用方法

格式:

代码语言:javascript
复制
try {
  // 有可能出现异常的代码,如果语句2出现异常,那么其后面的语句不再执行,
  // 直接跳入catch体。
  语句1;
  语句2;
  ...
} catch(Exception e) {
  // Exception e是JVM产生的异常对象;
  // 在这里捕捉异常;
  e.printStackTrace(); //打印异常信息;
} finally {
		// 无论是否捕捉到了异常,都会执行。有时也称为异常的出口
  语句;
}

例子2:(请动手)

代码语言:javascript
复制
class Demo{
  public static void main(String[] args) {
    try {
			System.out.println("Hello Monkey!");
      // 有可能出现异常的代码
      int i = 1 / 0;
    } catch(Exception e) {
      e.printStackTrace();
    } finally {
			// 无论是否捕捉到了异常,都会执行。有时也称为异常的出口
			System.out.println("Hello Android!");
    }
  }
}

throw和throws

例子3:(请动手)

1.新建一个User.java的源文件:

代码语言:javascript
复制

class User {
	private int age;
	private int money;
	public void setAge(int age) {
		if (age < 0) {
			// 生成一个异常对象
			RuntimeException e = new RuntimeException("年龄不能为负数!");
			// 抛出这个异常
			throw e;
		}
		this.age = age;
	}

	// throws的用法,对象在使用这个函数时,必须要捕捉异常。
	public void setMoney(int money) throws Exception {
		this.money = money;
	}

}

2.新建一个Demo01.java的源文件:

代码语言:javascript
复制

class Demo01 {
	public static void main(String[] args) {
		User user01 = new User();
		//年龄怎么会有负数呢?因此我们要捕捉这个异常。
		user01.setAge(-20);

		try {
			user01.setMoney(2000);
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("2000太少!");
		}


	}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015/07/20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是异常
    • 例子1:
    • 异常的分类
    • try…catch…finally结构的使用方法
      • 例子2:(请动手)
      • throw和throws
        • 例子3:(请动手)
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档