Java中异常处理示例
Exception 的三个方法
package com.liuyanzhao;class ZeroException {int div(int a,int b) throws Exception{return a/b;}}public class Demo {public static void main(String[] args) {ZeroException z= new ZeroException();try {int x = z.div(4, 0);System.out.println(x);} catch( Exception e) {System.out.println(e.getMessage());/// by zeroSystem.out.println(e.toString());//java.lang.ArithmeticException: / by zeroe.printStackTrace();/*java.lang.ArithmeticException: / by zeroat com.liuyanzhao.FushException.div(ExceptionDemo.java:7)at com.liuyanzhao.ExceptionDemo.main(ExceptionDemo.java:15)*/System.out.println("除0啦");//除0啦}}}
一个简单的try-catch语句块
package com.liuyanzhao;class ZeroException{int div(int a,int b) throws Exception{return a/b;}}public class Demo {public static void main(String[] args) {ZeroExceptionz= new ZeroException();try {int x = z.div(4, 0);System.out.println(x);} catch( Exception e) {System.out.println(e.toString());//java.lang.ArithmeticException: / by zero}}}
ducking只是在踢皮球,方法和main都抛出
package com.liuyanzhao;/** 1、 div()已经抛掉了异常* 连main()抛掉了异常* 最后只剩下Java虚拟机,你知道这家伙对异常是没有什么责任感的* Java虚拟机只好死给你看* 2、 两者都躲避异常,因此没有人来处理* 但有抛掉了,所以可以通过编译* 3、 本例的div方法的内的异常是输入RuntimeException* 所以它后面的声明异常(throws Exception)是可有可无的,可以省略* 但是main方法里要么try/catch处理,要么throws抛掉*/class ZeroException{int div(int a,int b) throws Exception {return a/b ;}}public class Demo {public static void main(String[] args) throws Exception {ZeroException z= new ZeroException();int x = z.div(4, );System.out.println(x);/* 正常编译,不美观的异常* Exception in thread "main" java.lang.ArithmeticException: / by zero at com.liuyanzhao.FushException.div(Demo.java:4)at com.liuyanzhao.Demo.main(Demo.java:11)*/}}
自定义异常信息和多个catch
package com.liuyanzhao;/** 1、throws是在方法声明后面* throw是在方法里面* 2、自定义异常信息,需要继承父类Exception* 3、有多个catch,需要从小到大* 4、异常也是多态的* 别忘了异常也是对象* 除了可以被抛出外,也没什么特别的* 5、可以用super来处理所有异常* 并不代表就应该这样做 */class FushException extends Exception{private String message;public String getMessage() {return message;}public FushException(String message) {this.message = message;//super(message);}int div(int a,int b) throws FushException {if(b<0)throw new FushException("除数不能为负数");return a/b ;}}public class Demo {public static void main(String[] args) {try {FushException f = new FushException("");int x = f.div(4,-1);System.out.println(x);} catch (FushException e) {System.out.println(e.getMessage());} catch(ArithmeticException e) {System.out.println(e.getMessage());} catch(Exception e) {System.out.println(e.getMessage());}}}
异常处理规则
①catch和finally不能没有try
public static void main(String[] args) {//try {FushException f = new FushException();int x = f.div(4, -1);System.out.println(x);//}catch (FushException e) {System.out.println(e.getMessage());}}
无法通过编译
②try与catch之间不能有程序
public static void main(String[] args) {try {FushException f = new FushException();int x = f.div(4, -1);System.out.println(x);}int a = 1;//中间不能插入代码catch (FushException e) {System.out.println(e.getMessage());}}
无法通过编译
③try一定要有catch或finally
public static void main(String[] args) {try{FushException f = new FushException();int x = f.div(4,-1);System.out.println(x);}// catch(FushException e) {// System.out.println(e.getMessage());// }finally {//清理}}
这个是合法的,可以通过编译。catch和finally至少需要有一个,但还是要注意 第④项
④自带有finally的try必须要声明异常
public static void main(String[] args) throws FushException{try{FushException f = new FushException();int x = f.div(4,-1);System.out.println(x);}finally {//清理}}
main必须要throws 异常,可以编译
本文地址:http://liuyanzhao.com/3919.html
转载请注明
Java中异常处理示例相关推荐
- java中异常处理语句错误用法的是_Java异常处理语句及解析
Java异常处理语句及解析 一.选择题 1.java中用来抛出异常的关键字是 (C) A.tryB.catchC.throw D.finally 2.关于异常,下列说法正确的是 (A) A.异常是一种 ...
- java word流_(word)java中字节流示例.doc
(word)java中字节流示例 OutputStream和InputStream分别为java中IO包整个字节输入/输出流的的主类: public abstract class InputStrea ...
- java中异常处理try块的说法正确的是_下面关于Java中异常处理try块的说法正确的是( )?...
下面关于Java中异常处理try块的说法正确的是( )? 答:可能抛出异常的方法调用应放在try块中. try块后通常应有一个catch 块,用来处理try块中抛出的异常. 滴定起点pH值提高,滴定突 ...
- c 异常 java异常_C ++和Java中异常处理的比较
如今,几乎所有面向对象的语言都具有异常处理功能.在C ++和Java中,我们也可以获得这种功能.C ++中的异常处理和Java中的异常处理之间有一些相似之处,例如在两种语言中,我们都必须使用try-c ...
- java try catch_异常处理,JAVA中异常处理的介绍
异常处理的介绍 在Java程序的运行过程中,如果Java虚拟机检测出一个无法执行的操作,就会产生运行时错误(runtime error) 在Java中,运行时错误会作为异常来抛出. 抛出的异常是一个对 ...
- java中异常处理机制
文章目录 一 认识常见异常 1 除0异常(算术异常) 2 数组越界异常 3 空指针异常 二 异常的体系 三 异常的用法(try-catch语句) 1概述与代码理解 2 注意事项 3 finally语句 ...
- 简述java异常机制处理,简述Java中异常处理的机制
Q1:JAVA中的异常处理机制的原理 Java中的异常处理机制的简单原理和应用 : java中Throwable这个类可以被作为异常抛出的类,继承它的分为异常Exception和错误Error. Ex ...
- Java中异常处理之try和catch代码块的使用
转自:https://www.jb51.net/article/72901.htm Java try和catch的使用 尽管由Java运行时系统提供的默认异常处理程序对于调试是很有用的,但通常你希望自 ...
- java中异常处理中的异常匹配
先贴上代码: class Annoyance extends Exception{} class Sneeze extends Annoyance{} public class test { pub ...
- java 批量处理 示例_Java异常处理教程(包含示例和最佳实践)
java 批量处理 示例 异常是可能在程序执行期间发生的错误事件,它会破坏其正常流程. Java提供了一种健壮且面向对象的方式来处理异常情况,称为Java异常处理 . 我们将在本教程中研究以下主题. ...
最新文章
- 每日一篇——lodash—array——differenceBy
- python使用正则表达式抽取文件中的IP地址
- 2020年度总结(只有做好自己不喜欢的事情你才能做自己喜欢的事情)
- 牛逼!Python错误、异常和模块(长文系列第4篇)
- python越来越慢_为什么Python中的串联速度越来越慢?
- 一步一步学习Servlet输出HelloServlet详解
- IIS上部署网站问题总结
- 系统结构目录与正则表达式
- 过滤器Filter与监听器Listener
- Oracle SQL语句优化【4】之使用SQL优化工具
- java面试简历项目经验,java面试题项目中的难点
- 此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置
- 【深入理解Kotlin协程】Google的工程师们是这样理解Flow的?
- java内置功能的使用,装箱拆箱及枚举类
- Java:StringBuffer
- 自动控制原理1~3章课后练习题
- Go const和iota 使用实战
- Windows系统下安装CentOS
- 三星I9220一键刷机 安卓手机
- 元宇宙游戏新体验,Aquqnee的“P2E”完美平衡
热门文章
- python金融网课_Python金融数据分析
- 差异基因p为0_【i春秋杯网络安全联赛WriteUp】为逆行者加油
- 【贪心】【堆】Gym - 101485A - Assigning Workstations
- 【mac】配置本地数据库
- textarea 的中文输入判断与搜狗输入法的特殊行为
- 基于 Windows7 + VMware-CentOS7虚拟机 搭建开发模式
- 启明星系统使用在线视频教程
- iOS开发:2分钟快速集成支付宝快捷支付
- PACKAGE-INFO.JAVA 作用及用法详解
- 【数据结构】线性表之数组---C++语言描述