廖雪峰Java3异常处理-1错误处理-2捕获异常

1捕获异常

1.1 finally语句保证有无错误都会执行

try{...}catch (){...}finally{...}

  • 使用try...catch捕获异常
  • 可能发生异常的语句放在try{...}中
  • 使用catch捕获对应的Exception及其子类

1.2 捕获多个异常

try{...} catch() {...} catch(){...}finally{..}
使用多个catch子句:

  • 每个catch捕获对应的Exception及其子类
  • 从上到下匹配,匹配到某个catch后不再继续匹配

注意:catch的顺序非常重要,子类必须写在前面:
try{...} catch(IOException e){...} catch(UnsupportedEncodingException e){...}
UnsupportedEncodingException是IOExcetion的子类,这样UnsupportedEncodingException永远都不会被捕获到

import java.io.*;
import java.lang.String;public class Main {public static void main(String[] args) {process("abc");process("0");}static void process(String s) {try{int n = Integer.parseInt(s);int m = 100 / n;}catch(NumberFormatException e){System.out.println(e);System.out.println("Bad input");}catch (ArithmeticException e){System.out.println(e);System.out.println("Bad input");}finally {System.out.println("end process");}}
}

1418970-20190128223150627-1121753424.png

1.3 multi-catch

如果某些异常的处理逻辑相同:

  • 不存在继承关系,必须编写多条catch子句,可以用 " | " 表示多种Exception
import java.lang.String;public class Main {public static void main(String[] args) {process("abc");process("0");}static void process(String s) {try{int n = Integer.parseInt(s);int m = 100 / n;}catch(NumberFormatException|ArithmeticException e){System.out.println(e);System.out.println("Bad input");}finally {System.out.println("end process");}}
}

1418970-20190128223338611-963169792.png

2.总结

  • catch子句的匹配顺序非常重要,子类必须放在前面
  • finally子句保证有无异常都会执行
  • finally是可选的
  • catch可以匹配多个非继承关系的异常(JDK >= 1.7)

转载于:https://www.cnblogs.com/csj2018/p/10306057.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

更新数据库

方法一:在对SQL数据库进行更新时,用CommandBuilder对像来自动构建sql命令,来起到更新的作用;这种方法用起来比较方便,具体代码如下: 以下代码都在xp系统下测试通过 环境:vs.net2005 \ sql server 2000\xpus…

在崩溃或断电后测试Lucene的索引耐久性

Lucene有用的事务功能之一是索引持久性 ,它可以确保一旦成功调用IndexWriter.commit ,即使操作系统或JVM崩溃或断电,或者您杀死-KILL JVM进程,重启后索引也将保持完整(未损坏),并将反映崩溃前的…

Jmeter、postman、python 三大主流技术如何操作数据库?

1、前言 只要是做测试工作的,必然会接触到数据库,数据库在工作中的主要应用场景包括但不限于以下: 功能测试中,涉及数据展示功能,需查库校验数据正确及完整性;例如商品搜索功能 自动化测试或性能测试中&a…

利用ASP.NET向服务器上传文件[转]

文件上传技术是一个很实用的技术,有着很广泛的应用,在ASP.NET自身的前一个版本ASP里实现这个功能,就必须使用第三方的组件或者自己开发组件了,现在,用ASP.NET实现起来就简单得多了,我们不需要使用任何组件就…

java中HashMap详解

HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚…

java代码编写的文本特征提取_Test1 java语言写的特征提取源代码,有搞文字识别的可以下载一看,简单易学 Develop 274万源代码下载- www.pudn.com...

文件名称: Test1下载 收藏√ [5 4 3 2 1 ]开发工具: Java文件大小: 35 KB上传时间: 2015-03-02下载次数: 46提 供 者: 常杰详细说明:java语言写的特征提取源代码,有搞文字识别的可以下载一看,简单易学-Feature extraction of the Java …

c# HashTable (哈希表)

HashTable 哈希表 也是System.Collections集合下的数据结构类 它储存的也是Object类型的对象 但是它在内存中是散列排布的 因为这个特性,非常适合存储大量的数据 在HashTable中一个键只能对应一个值,一个值可以对应多个键(多对一)…

Spring集成–配置Web服务客户端超时

介绍 在Spring Integration的支持下,您的应用程序可以使用出站Web服务网关来调用Web服务。 调用由该网关处理,因此您只需要担心构建请求消息和处理响应。 但是,使用这种方法并不明显,如何配置其他选项,例如设置超时或操…

将txt文件和excel文件导入SQL2000数据库

在做一些web数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲如何在C#-web项目中将txt文件和excel文件导入SQL2000数据库。1.数据库准备在SQL2000数据库的实例数据库pubs中建立一个数据表txtInsert,字段很简单:id&#xff0…

Java 8 Friday:Java 8将彻底改变数据库访问

在Data Geekery ,我们喜欢Java。 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 对于Java 8系列 ,我们很荣幸主持Iu Ming-Yee Iu博士发表的非常相关的嘉宾帖子。 Iu …

Linux文件权限管理

权限管理 1、权限解读 权限:用户针对文件是否有读、写、执行的权利。 权限划分:读(Read)、写(Write)、执行(eXecute) 权限针对用户的划分:主人(User&#xff…

Sqoop数据迁移工具的使用

文章作者:foochane 原文链接:https://foochane.cn/article/2019063001.html Sqoop数据迁移工具的使用 sqoop简单介绍 sqoop数据到HDFS/HIVE sqoop数据到MySQL 1 sqoop简单介绍 sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。用…

java中io.nio.aio_Java中网络IO的实现方式-BIO、NIO、AIO

在网络编程中,接触到最多的就是利用Socket进行网络通信开发。在Java中主要是以下三种实现方式BIO、NIO、AIO。关于这三个概念的辨析以前一直都是好像懂,但是表达的不是很清楚,下面做个总结完全辨析清楚。1. BIO方式首先我用一个较为通俗的语言…

C++中this指针

由类生成对象时&#xff0c;对象中只保存私有数据。 因为由一个类生成的所有对象为其数据服务的方法都是相同的&#xff0c;因此&#xff0c;一个类中的方法是大家所共用的。 而这就牵扯到当对象A调用方法时&#xff0c;如何保证该方法操作的数据是对象A的数据。 #include<i…

jfinal java搭建_Eclipse快速搭建Jfinal web应用 (一)

JFinal简介JFinal 是基于 Java 语言的极速 WEB ORM 框架&#xff0c;其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率&#xff01;为您节约更多时间&#xff0c…

PHP后台处理jQuery Ajax跨域请求问题 — xx was not called解决办法

// 前台代码 $.ajax({url: http://www.ushark.net/home/save_trial_apply,dataType: jsonp,processData: false,data: $(.layui-layer-content #trialFormInfo).serialize(), }) .done(function(data) {layer.msg(申请成功); }) .fail(function(jqXHR, textStatus, errorThrown…

如何使用VisualVM监视服务器上的多个JVM

在上一篇文章中&#xff0c;我向您展示了如何使用单个管理员服务器和多个托管服务器启动WebLogic Server。 这些启动之后&#xff0c;您如何检查它们的健康状况&#xff1f; 您可以使用管理员的/ console网络应用。 但是&#xff0c;所有默认的Oracle / Open JDK 6附带的另一个…

排序算法 JavaScript

一、冒泡排序 算法介绍&#xff1a; 1.比较相邻的两个元素,如果前一个比后一个大&#xff0c;则交换位置。 2.第一轮把最大的元素放到了最后面。 3.由于每次排序最后一个都是最大的&#xff0c;所以之后按照步骤1排序最后一个元素不用比较。 function bubble_sort(arr){var swa…

[你必须知道的.NET] 第一回:恩怨情仇:is和as

发布日期&#xff1a;2007.4.7 作者&#xff1a;Anytao ©2007 Anytao.com 转贴请注明出处&#xff0c;留此信息。 本文将介绍以下内容&#xff1a; • 类型转换 • is/as操作符小议 1. 引言 类型安全是.NET设计之初重点考虑的内容之一&#xff0c;对于程序设计者来说&…

获取当前鼠标的位置以及组件的位置

总结&#xff1a; div如果要触发鼠标事件要加上css样式cusor:pointer。 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.com