1. throw概述

在功能方法内部出现某种问题,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。

2. 案例演示:

(1)

  1. package com.himi.throwdemo;
  2. public class ExceptionDemo2 {
  3. public static void main(String[] args) {
  4. method();
  5. // try {
  6. // method2();
  7. // } catch (Exception e) {
  8. // e.printStackTrace();
  9. // }
  10. }
  11. public static void method() {
  12. int a = 10;
  13. int b = 0;
  14. if (b == 0) {
  15. throw new ArithmeticException();
  16. } else {
  17. System.out.println(a / b);
  18. }
  19. }
  20. public static void method2() throws Exception {
  21. int a = 10;
  22. int b = 0;
  23. if (b == 0) {
  24. throw new Exception();
  25. } else {
  26. System.out.println(a / b);
  27. }
  28. }
  29. }

运行结果如下:

上面调用method方法中,由于b==0,那么就会出现如下:

throw new ArithmeticException();  就会打印下面的信息

当然也可以throw new ArithmeticException("我错了");  就会打印下面的信息

(2)

  1. package com.himi.throwdemo;
  2. public class ExceptionDemo2 {
  3. public static void main(String[] args) {
  4. //method();
  5. //调用者调用method2()方法,try……catch捕获处理异常。
  6. try {
  7. method2();
  8. } catch (Exception e) {
  9. // TODO 自动生成的 catch 块
  10. System.out.println("catch语句块处理捕获的异常");
  11. }
  12. }
  13. public static void method() {
  14. int a = 10;
  15. int b = 0;
  16. if (b == 0) {
  17. throw new ArithmeticException("我错了");
  18. } else {
  19. System.out.println(a / b);
  20. }
  21. }
  22. public static void method2() throws Exception {//这里method2抛出异常Exception,交给调用者处理
  23. int a = 10;
  24. int b = 0;
  25. if (b == 0) {
  26. throw new Exception();//这里是抛出是new Exception(异常的超类),它是编译时期异常,必须处理(上抛)
  27. } else {
  28. System.out.println(a / b);
  29. }
  30. }
  31. }

运行程序,效果如下:

3.throws和throw的区别(面试题)

    throws(异常抛出,不处理)

                    用在方法声明后面,跟的是异常类名

                    可以跟多个异常类名,用逗号隔开

                    表示抛出异常,由该方法的调用者来处理

                    throws表示出现异常的一种可能性,并不一定会发生这些异常

     throw(异常处理,打印信息)

                    用在方法体内,跟的是异常对象名

                    只能抛出一个异常对象名

                    表示抛出异常,由方法体内的语句处理

                    throw则是抛出了异常,执行throw则一定抛出了某种异常

Java基础知识强化之IO流笔记04:throw和throws的区别的更多相关文章

  1. Java基础知识强化之IO流笔记17:FileOutputStream构造方法使用

    1. 可以参照之前写的笔记:   Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流) 2. FileOutputStream(常用的)构造方法: FileOu ...

  2. Java基础知识强化之IO流笔记71:NIO之 NIO的(New IO流)介绍

    1. I/O 简介 I/O ( 输入/输出  ):指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的. ...

  3. Java基础知识强化之IO流笔记68:Properties和IO流集合使用

    1. Properties和IO流集合使用 这里的集合必须是Properties集合:  public void load(Reader reader):把文件中的数据读取到集合中  public v ...

  4. Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)

    1. Properties的概述  Properties:属性集合类.是一个可以和IO流相结合使用的集合类. 该类主要用于读取以项目的配置文件(以.properties结尾的文件 和 xml文件). ...

  5. Java基础知识强化之IO流笔记22:FileInputStream / FileOutputStream 复制文本文件案例1

    1. 使用字节流FileInputStream / FileOutputStream 复制文本文件案例: 分析: (1)数据源:从哪里来 a.txt   --   读取数据  --  FileInpu ...

  6. Java基础知识强化之IO流笔记16:IO流的概述和分类

    1. IO流的分类   流向:     (1)输入流:读取数据到内存     (2)输出流:写入数据到硬盘(磁盘)   操作的数据类型:    (1)字节流:操作的数据是字节             ...

  7. Java基础知识强化之IO流笔记01:异常的概述和分类

     IO流操作的时候会出现很多问题,java中叫作异常,所以我们先介绍一下异常: 1. 程序的异常:Throwable(Throwable类是java中所有异常或错误的超类) (1)严重问题:Error ...

  8. Java基础知识强化之IO流笔记42:IO流总结(图解)

    1. IO流总结(图解)

  9. Java基础知识强化之IO流笔记83:NIO与IO

    当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...

随机推荐

  1. javascript基础学习(十一)

    javascript之BOM 学习要点: BOM介绍 Window对象 一.BOM介绍 浏览器对象模型简称为BOM(Brower Object Model),BOM由很多对象构成,对象与对象之间有着相 ...

  2. ubuntu下apache与php配置

    实验环境 uname -a Linux tomato 4.4.0-34-generic #53-Ubuntu SMP Wed Jul 27 16:06:39 UTC 2016 x86_64 x86_6 ...

  3. 关于highcharts(功能强大、开源、美观、图表丰富、兼容绝大多数浏览器的纯js图表库)

    官网http://www.hcharts.cn/ 引入下列文件 <script type="text/javascript" src="http://cdn.hch ...

  4. JavaScript作用域链详解

    JavaScript的作用域链还是很有味道的,搞懂了这个知识点,闭包的问题也就迎刃而解咯 1.JavaScript的全局变量和局部变量 首先,先来看看js的全局变量和局部变量,js不是块级作用域,所以 ...

  5. Asp.Net Mvc: 浅析TempData机制(转发 作者: Tristan G )

    Asp.Net Mvc: 浅析TempData机制 环境: Windows 2008, VS 2008 SP1, Asp.Net Mvc 1.0 --------------------------- ...

  6. 如何用angularjs制作一个完整的表格之二__表格分页功能

    接上一次,这次主要介绍表格分页功能,由于项目需要这个案例是关于前端分页的方式,现在很少会这么用了,但如有需要可以参考其中的思路 html: 1.通过UL来展示页标,其中每个页标的li是通过异步加载从获 ...

  7. spring mvc 自定义Handlermapping

    上次大概写了个可以解决velocity 多视图的东西. 但是实际运用过程中又到处找了些资料看了下.这里 小计下: DispatcherServlet解析过程: ..1..HandlerMapping. ...

  8. iOS开发网络篇—JSON数据的解析

    iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式 ...

  9. 转:OWASP发布Web应用程序的十大安全风险

    Open Web Application Security Project(OWASP)是世界范围内的非盈利组织,关注于提高软件的安全性.它们的使命是使应用软件更加安全,使企业和组织能够对应用安全风险 ...

  10. 7月12日至芯FPGA就业班招生

    至芯科技FPGA就业培训班将于2014年7月12日正式开班,届时至芯科技将秉承着一贯的教学传统,为广大师生打造一个专业的技术平台和轻松的学习环境. 在夏宇闻教授的带领下,至芯科技汇聚了一批来自国内外大 ...