Java基础知识强化之IO流笔记04:throw和throws的区别

时间:2023-02-06 13:09:34

1. throw概述

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

2. 案例演示:

(1)

 package com.himi.throwdemo;

 public class ExceptionDemo2 {
public static void main(String[] args) {
method(); // try {
// method2();
// } catch (Exception e) {
// e.printStackTrace();
// }
} public static void method() {
int a = 10;
int b = 0;
if (b == 0) {
throw new ArithmeticException();
} else {
System.out.println(a / b);
}
} public static void method2() throws Exception {
int a = 10;
int b = 0;
if (b == 0) {
throw new Exception();
} else {
System.out.println(a / b);
}
} }

运行结果如下:

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

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

Java基础知识强化之IO流笔记04:throw和throws的区别

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

Java基础知识强化之IO流笔记04:throw和throws的区别

(2)

 package com.himi.throwdemo;

 public class ExceptionDemo2 {
public static void main(String[] args) {
//method();
//调用者调用method2()方法,try……catch捕获处理异常。
try {
method2();
} catch (Exception e) {
// TODO 自动生成的 catch 块
System.out.println("catch语句块处理捕获的异常");
}
} public static void method() {
int a = 10;
int b = 0;
if (b == 0) {
throw new ArithmeticException("我错了");
} else {
System.out.println(a / b);
}
} public static void method2() throws Exception {//这里method2抛出异常Exception,交给调用者处理
int a = 10;
int b = 0;
if (b == 0) {
throw new Exception();//这里是抛出是new Exception(异常的超类),它是编译时期异常,必须处理(上抛)
} else {
System.out.println(a / b);
}
} }

运行程序,效果如下:

Java基础知识强化之IO流笔记04:throw和throws的区别

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. 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???

    在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...

  2. 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试

    也不说废话,直接干 上一篇 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 中安装了 FastDFS 后,并配置启动了 Tracker 和 Storage 服务,已经可以上传文件 ...

  3. 详解clientHeight、offsetHeight、scrollHeight

    关于clientHeight.offsetHeight.scrollHeight   window.screen.availWidth 返回当前屏幕宽度(空白空间)  window.screen.av ...

  4. linux 访问tomcat 管理页面时 You are not authorized to view this page 403(真实可用)

    ava代码 收藏代码 You are not authorized to view this page. If you have not changed any configuration files ...

  5. Deeplearning原文作者Hinton代码注解

    [z]Deeplearning原文作者Hinton代码注解 跑Hinton最初代码时看到这篇注释文章,很少细心,待研究... 原文地址:>http://www.cnblogs.com/BeDPS ...

  6. Linux的IP设置参考

    位置:etc/network/interfaces 内容: 第一段是网口1自动从DHCP处获得IP 第二段是网口2静态分配IP 如果是IPv6,请把 iface eth0 inet dhcp(stat ...

  7. matlab里的nargin

    nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.

  8. Java学习之旅基础知识篇:数组及引用类型内存分配

    在上一篇中,我们已经了解了数组,它是一种引用类型,本篇将详细介绍数组的内存分配等知识点.数组用来存储同一种数据类型的数据,一旦初始化完成,即所占的空间就已固定下来,即使某个元素被清空,但其所在空间仍然 ...

  9. libmemcached的安装及測试

    1.安装memcached ~$ wget http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz. $ tar xvzf lmemc ...

  10. c/c++ 网络编程 UDP 主机网络信息取得

    网络编程 UDP 主机网络信息取得 1,if_nametoindex 通过网卡名字取得网卡编号 2,if_indextoname 通过网卡编号取得网卡名字 #include <stdio.h&g ...