<pre name="code" class="java">/*异常:就是程序在运行时出现的不正常情况、异常的由来:问题也就是现实生活中的一个具体事物,也可以通过java的类的形式进行描述。并封装成对象。其实就是java对不正常情况进行描述后的对象体现。对于问题的划分:
比较严重的,java通过Error类进行描述(对于Error一般不编写针对性的代码对其进行处理)非严重的,java通过Exception得进行描述(对于Exception可以使用针对性的处理方式进行处理)try {}异常处理:
java提供了特有的语句进行处理try
{需要被检测的代码;}catch(异常类   变量){处理异常的方法}对捕获的异常进行常见的方法操作
e.getMessage()异常信息
e.toString()异常名称 :异常信息
e.printStackTrace()打印异常名称,异常信息,异常位置(jvm默认的异常处理机制)对多异常的处理:1、声明异常时,建议声明更为具体的异常,这样处理更具体。2、对方声明几个异常,就对应有几个catch块如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。建立在进行catch处理时,catch中一定要定义具体处理方式不要简单定义一句e.printStackTrace(),一般是将错误写入日志文件,一边查找修复BUG自定义异常:(java中没有的项目特有的异常)例:需求:在项目中,除数是-数,也视为是错误的:1、当函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作。在内部try catch 或 函数声明上让调用者处理,一般在函数内处理异常,函数上需要声明;2、 处理后会发现打印结果中只有异常名称,却没有异常处理信息,此时就需要定义异常处理信息。异常信息定义:1,父类中Exception已经把异常信息操作完成了,所以子类只要在构造时,将异常信息 传递给父类(通过super)就可以直接通过getMessage方法获取自定义的异常信息。注意:
自定义必须继承Exception或其子类。
原因:异常体系中异常类和异常对象都被抛出,具备可抛性,可抛性是Throwable独有特点,
只有异常体系中的类和对象才可以被throws和throw操作。throws 和throw的区别:
throws定义在函数上,抛出的是异常类,可以跟多个。
throw定义在函数内,抛出的是异常对象。Exception中有一个特殊的子类异常RuntimeException
RuntimeException:(当异常发生时,期望程序停止)
1,如果在函数内容上抛出该异常,函数上可以不用声明;如果在函数上声明了该异常,
调用者可以不用进行异常处理异常分两种;
1.编译时被检测的异常。要声明和处理方法。
2.编译时不被检测的异常,(运行时异常,RuntimeException类)*//*①  class Exception extends Throwable//该类包含了复写接收方法
{Exception(String message){super(message);}
}*/class FuException extends RuntimeException//RuntimeException异常处理
{FuException(String str){super(str);}
}
class Du
{int di(int a,int b)//此处不用在声明异常{if(b<0)throw new ArithmeticException("chilin");return a/b;}
}class FuSException extends Exception//目的:生成对象
{/*private String str;public FuSException(String str)//复写{this.str=str;}public String getMessage(){return str;}*/private int s;FuSException(String str,int s){super(str);//Exception 已经包含了上面的操作如①this.s=s;}int gets(){return s;}
}
class DuiX
{int div(int a,int b)throws FuSException{if(b<0)throw new FuSException("BY fushu ",b);//throw抛出一个异常对象,构造异常内容return a/b;}
}class YiChang
{int yiC(int a,int b)throws ArithmeticException,ArrayIndexOutOfBoundsException//多异常处理//在功能上通过throws声明该功能可能有问题。{int arr[]=new int[a];System.out.println(arr[4]);return a/b;}
}class MI
{public static void main(String[] args)//throws Exception//抛给虚拟机{DuiX d=new DuiX();try{d.div(4, -9);//抛出了异常,必须处理}catch(FuSException e){System.out.println(e.toString());System.out.println("fushu");System.out.println(e.gets());}Du t=new Du();//此时不要处理方法t.di(4, -9);//YiChang y=new YiChang();//int d=y.yiC(3,0);异常//System.out.println(d);//int d;/*try//处理异常{d=y.yiC(4, 0);System.out.println(d);}catch(ArithmeticException e){System.out.println("error");System.out.println(e.getMessage());//打印异常信息System.out.println(e.toString());//打印异常名称 :异常信息e.printStackTrace();//打印异常名称,异常信息,异常位置(jvm默认的异常处理机制)}catch(ArrayIndexOutOfBoundsException e){System.out.println(e.toString());System.out.println("over");}catch(Exception e){e.printStackTrace();}*/System.out.println("over");}
}
finally:一定执行的代码块,一般用于关闭某些资源

java 基础(异常处理)相关推荐

  1. 【学习笔记】JAVA基础——异常处理部分

    文章目录 前言 简介 一. try.catch与finally ① try && catch ② finally ③ throws 补充:JVM 相关 二. 异常的分类 ① 分类解释与 ...

  2. Java基础——异常处理

    在程序运行过程中,如果JVM检测出一个不可能执行的操作,就会出现运行时错误. 在Java中,运行时错误会作为异常抛出.异常就是一个对象,表示阻止正常进行程序执行的错误或者情况.如果异常没有被处理,那么 ...

  3. Java基础-异常处理机制

    //什么是异常? 程序运行的过程中发生的各种错误 //为什么学习异常? 1.让程序逻辑思维更健康 2.有能力解决异常 //A异常的分类 //1 未检查异常:编译时不报错,运行时可能出错.[实质上是一些 ...

  4. java基础-异常处理

    java异常包括一下几种: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的.例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略. 运行时异 ...

  5. 菜鸟学习笔记:Java基础篇7(包装类、时间相关类、文件类、异常处理类)

    菜鸟学习笔记:Java其他常用类 基本数据类型包装类 时间处理和文件处理相关类 Date时间类 SimpleDateFormat Calendar日历类 文件类 异常机制 异常的概念 Java异常处理 ...

  6. Java基础教程【第九章:异常处理】

    章节目录 1. java 异常处理 1.1 什么是异常 1.2 java 的异常处理 1.3 异常示例 1.4 异常处理的基础 1.5 异常处理机制 1.6 常见异常及用途 2. throw 语句 3 ...

  7. Java基础篇:什么是异常,异常处理的基础是什么?

    异常是在运行时代码序列中产生一种异常情况.换句话说,异常是一个运行时错误.在不支持异常处理的计算机语言中,错误必须被手工的检查和处理--典型的是通过错误代码的运用等等.这种方法既很笨拙也很麻烦. Ja ...

  8. 清华学长免费分享Java基础核心知识大总结(1)

    自学Java,如果觉得看<Java编程思想>或者<Core Java>等之类的"圣经"觉得内容太多,一下子吃不透的话,不妨看看这本<Java基础核心总 ...

  9. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  10. Java基础、多线程、JVM、集合八股文自述(持续更新)

    Java基础.多线程.JVM.集合八股文自述 一.Java基础 1.1 object类有哪些方法? getClass().hashCode().equals().clone().toString(). ...

最新文章

  1. SpringBoot设置Session失效时间
  2. 使用μJava进行变异体测试
  3. Python标准库_ sys,random,time
  4. 随机洗牌算法 银行家算法
  5. 抛开百度、知乎等都找不到连接不上服务器远程桌面的原因
  6. 平衡二叉树详解 通俗易懂
  7. MFC MDI 多视图选项卡式风格
  8. 人民网:《百度公布博客服务商前十强 MSN博客超过本土博客》
  9. 网易互娱笔试题(2021春招)
  10. 立足自主创新,编程猫助推国内高质量编程教育普及
  11. 为什么说交换机可以隔离冲突域?
  12. Datawhale组队学习NLP之transformer Task03 BERT
  13. Beyond Compare4秘钥
  14. rtx 加密机制_rtx腾讯通组织架构(结构)不显示的解决办法
  15. 集成方法-随机森林和AdaBoost
  16. 医学影像数据集和其他数据集们
  17. 30岁青年医生凌晨猝死:生死之外,其实都是小事!
  18. 网络营销工具:网上收集的30个常用SEO工具
  19. raspberry树莓派 -- CAN收发 - waveshare微雪
  20. php超市管理系统代码,php开发的超市管理系统

热门文章

  1. MySQL学习博客第一篇
  2. 2020电赛经验总结+E题解题思路
  3. PCB检查-allegro PDN进行简单电源直流压降分析
  4. mysql5.7性能提升一百倍调优
  5. 软考高级系统架构设计师所需要的所有资料,教程、大纲、整体 (清华版本)
  6. Exception in thread “main“ java.lang.ClassCastException: test.SuperClass cannot be cast to test.SubC
  7. HDU 2838 Cow Sorting(双树状数组+求逆序数)
  8. 企业应该做的体系认证
  9. Asp.Net读取excel文件的时候 出错提示:外部表不是预期的格式 解决方案
  10. 解决linux上的Give root password for maintenance问题