java 基础(异常处理)
<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 基础(异常处理)相关推荐
- 【学习笔记】JAVA基础——异常处理部分
文章目录 前言 简介 一. try.catch与finally ① try && catch ② finally ③ throws 补充:JVM 相关 二. 异常的分类 ① 分类解释与 ...
- Java基础——异常处理
在程序运行过程中,如果JVM检测出一个不可能执行的操作,就会出现运行时错误. 在Java中,运行时错误会作为异常抛出.异常就是一个对象,表示阻止正常进行程序执行的错误或者情况.如果异常没有被处理,那么 ...
- Java基础-异常处理机制
//什么是异常? 程序运行的过程中发生的各种错误 //为什么学习异常? 1.让程序逻辑思维更健康 2.有能力解决异常 //A异常的分类 //1 未检查异常:编译时不报错,运行时可能出错.[实质上是一些 ...
- java基础-异常处理
java异常包括一下几种: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的.例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略. 运行时异 ...
- 菜鸟学习笔记:Java基础篇7(包装类、时间相关类、文件类、异常处理类)
菜鸟学习笔记:Java其他常用类 基本数据类型包装类 时间处理和文件处理相关类 Date时间类 SimpleDateFormat Calendar日历类 文件类 异常机制 异常的概念 Java异常处理 ...
- Java基础教程【第九章:异常处理】
章节目录 1. java 异常处理 1.1 什么是异常 1.2 java 的异常处理 1.3 异常示例 1.4 异常处理的基础 1.5 异常处理机制 1.6 常见异常及用途 2. throw 语句 3 ...
- Java基础篇:什么是异常,异常处理的基础是什么?
异常是在运行时代码序列中产生一种异常情况.换句话说,异常是一个运行时错误.在不支持异常处理的计算机语言中,错误必须被手工的检查和处理--典型的是通过错误代码的运用等等.这种方法既很笨拙也很麻烦. Ja ...
- 清华学长免费分享Java基础核心知识大总结(1)
自学Java,如果觉得看<Java编程思想>或者<Core Java>等之类的"圣经"觉得内容太多,一下子吃不透的话,不妨看看这本<Java基础核心总 ...
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...
- Java基础、多线程、JVM、集合八股文自述(持续更新)
Java基础.多线程.JVM.集合八股文自述 一.Java基础 1.1 object类有哪些方法? getClass().hashCode().equals().clone().toString(). ...
最新文章
- SpringBoot设置Session失效时间
- 使用μJava进行变异体测试
- Python标准库_ sys,random,time
- 随机洗牌算法 银行家算法
- 抛开百度、知乎等都找不到连接不上服务器远程桌面的原因
- 平衡二叉树详解 通俗易懂
- MFC MDI 多视图选项卡式风格
- 人民网:《百度公布博客服务商前十强 MSN博客超过本土博客》
- 网易互娱笔试题(2021春招)
- 立足自主创新,编程猫助推国内高质量编程教育普及
- 为什么说交换机可以隔离冲突域?
- Datawhale组队学习NLP之transformer Task03 BERT
- Beyond Compare4秘钥
- rtx 加密机制_rtx腾讯通组织架构(结构)不显示的解决办法
- 集成方法-随机森林和AdaBoost
- 医学影像数据集和其他数据集们
- 30岁青年医生凌晨猝死:生死之外,其实都是小事!
- 网络营销工具:网上收集的30个常用SEO工具
- raspberry树莓派 -- CAN收发 - waveshare微雪
- php超市管理系统代码,php开发的超市管理系统
热门文章
- MySQL学习博客第一篇
- 2020电赛经验总结+E题解题思路
- PCB检查-allegro PDN进行简单电源直流压降分析
- mysql5.7性能提升一百倍调优
- 软考高级系统架构设计师所需要的所有资料,教程、大纲、整体 (清华版本)
- Exception in thread “main“ java.lang.ClassCastException: test.SuperClass cannot be cast to test.SubC
- HDU 2838 Cow Sorting(双树状数组+求逆序数)
- 企业应该做的体系认证
- Asp.Net读取excel文件的时候 出错提示:外部表不是预期的格式 解决方案
- 解决linux上的Give root password for maintenance问题