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中异常处理示例相关推荐

  1. java中异常处理语句错误用法的是_Java异常处理语句及解析

    Java异常处理语句及解析 一.选择题 1.java中用来抛出异常的关键字是 (C) A.tryB.catchC.throw D.finally 2.关于异常,下列说法正确的是 (A) A.异常是一种 ...

  2. java word流_(word)java中字节流示例.doc

    (word)java中字节流示例 OutputStream和InputStream分别为java中IO包整个字节输入/输出流的的主类: public abstract class InputStrea ...

  3. java中异常处理try块的说法正确的是_下面关于Java中异常处理try块的说法正确的是( )?...

    下面关于Java中异常处理try块的说法正确的是( )? 答:可能抛出异常的方法调用应放在try块中. try块后通常应有一个catch 块,用来处理try块中抛出的异常. 滴定起点pH值提高,滴定突 ...

  4. c 异常 java异常_C ++和Java中异常处理的比较

    如今,几乎所有面向对象的语言都具有异常处理功能.在C ++和Java中,我们也可以获得这种功能.C ++中的异常处理和Java中的异常处理之间有一些相似之处,例如在两种语言中,我们都必须使用try-c ...

  5. java try catch_异常处理,JAVA中异常处理的介绍

    异常处理的介绍 在Java程序的运行过程中,如果Java虚拟机检测出一个无法执行的操作,就会产生运行时错误(runtime error) 在Java中,运行时错误会作为异常来抛出. 抛出的异常是一个对 ...

  6. java中异常处理机制

    文章目录 一 认识常见异常 1 除0异常(算术异常) 2 数组越界异常 3 空指针异常 二 异常的体系 三 异常的用法(try-catch语句) 1概述与代码理解 2 注意事项 3 finally语句 ...

  7. 简述java异常机制处理,简述Java中异常处理的机制

    Q1:JAVA中的异常处理机制的原理 Java中的异常处理机制的简单原理和应用 : java中Throwable这个类可以被作为异常抛出的类,继承它的分为异常Exception和错误Error. Ex ...

  8. Java中异常处理之try和catch代码块的使用

    转自:https://www.jb51.net/article/72901.htm Java try和catch的使用 尽管由Java运行时系统提供的默认异常处理程序对于调试是很有用的,但通常你希望自 ...

  9. java中异常处理中的异常匹配

    先贴上代码: class Annoyance extends Exception{} class Sneeze extends Annoyance{} public  class test { pub ...

  10. java 批量处理 示例_Java异常处理教程(包含示例和最佳实践)

    java 批量处理 示例 异常是可能在程序执行期间发生的错误事件,它会破坏其正常流程. Java提供了一种健壮且面向对象的方式来处理异常情况,称为Java异常处理 . 我们将在本教程中研究以下主题. ...

最新文章

  1. 每日一篇——lodash—array——differenceBy
  2. python使用正则表达式抽取文件中的IP地址
  3. 2020年度总结(只有做好自己不喜欢的事情你才能做自己喜欢的事情)
  4. 牛逼!Python错误、异常和模块(长文系列第4篇)
  5. python越来越慢_为什么Python中的串联速度越来越慢?
  6. 一步一步学习Servlet输出HelloServlet详解
  7. IIS上部署网站问题总结
  8. 系统结构目录与正则表达式
  9. 过滤器Filter与监听器Listener
  10. Oracle SQL语句优化【4】之使用SQL优化工具
  11. java面试简历项目经验,java面试题项目中的难点
  12. 此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置
  13. 【深入理解Kotlin协程】Google的工程师们是这样理解Flow的?
  14. java内置功能的使用,装箱拆箱及枚举类
  15. Java:StringBuffer
  16. 自动控制原理1~3章课后练习题
  17. Go const和iota 使用实战
  18. Windows系统下安装CentOS
  19. 三星I9220一键刷机 安卓手机
  20. 元宇宙游戏新体验,Aquqnee的“P2E”完美平衡

热门文章

  1. python金融网课_Python金融数据分析
  2. 差异基因p为0_【i春秋杯网络安全联赛WriteUp】为逆行者加油
  3. 【贪心】【堆】Gym - 101485A - Assigning Workstations
  4. 【mac】配置本地数据库
  5. textarea 的中文输入判断与搜狗输入法的特殊行为
  6. 基于 Windows7 + VMware-CentOS7虚拟机 搭建开发模式
  7. 启明星系统使用在线视频教程
  8. iOS开发:2分钟快速集成支付宝快捷支付
  9. PACKAGE-INFO.JAVA 作用及用法详解
  10. 【数据结构】线性表之数组---C++语言描述