Java基础-异常处理机制
//什么是异常? 程序运行的过程中发生的各种错误
//为什么学习异常? 1、让程序逻辑思维更健康 2、有能力解决异常
//A异常的分类
//1 未检查异常:编译时不报错,运行时可能出错。【实质上是一些逻辑上的问题】
//2 已检查异常:编译时一定报错,且错误信息是:unhandled exception type XXX
//对待未检查异常,尽量使用逻辑思维来解决问题【if语句等】,解决不了再用异常处理机制
//对待已检查异常,必须使用异常处理机制解决
//B异常的处理机制
//1 try{...}catch{...} 处理掉;负责的表现
//2 throws 不处理,抛出;不负责分表现
public class ExceptionTest{
public static void main(){
//例一
try{
String str=null;
System.out.println(str.length());//空指针异常,即 对象不存在
}catch(NullPointerException e){
System.out.println("字符串不存在,无法计算长度");
}
//例二
String str2=null;
if(str != null){
System.out.println(str);
}else{
System.out.println("字符串不存在,无法处理业务");
}
//例三
int i=0;
if(i==0){
System.exit(0);//结束程序运行
}
double j=10/i;//ArithmeticException
System.out.println(j);
//例四
String str3="qwertyuiop";
Date d1=DateFormat.getDateInstance().parse(str3);//ParseException
}//main方法结束
//程序员转存业务本身,将异常抛出给别人处理
//一般main方法不再继续抛出给别人
public static Date StringToDate(String str) throws ParseException{
Date d1=null;
d1=DateFormat.getDateInstance().parse(str);
return d1;
}
}//类结束
//throw 人为将程序中的某种现象作为异常来看待【人造异常】
//使用方法:
//1、一般出现在方法体中(throws出现在方法头部)
//2、格式:throw new 异常类构造器([异常原因]);
//3、方法头部需要throws来配合处理这个人造异常
//如,一个人的年龄不能为负数或大于150岁,简单编码如下:
public class Student{
private int age;
public void toSetAge(int age) throws Exception{
if(age>=0&&age<=150){
this.age=age;
}else{
throw new Exception(age+"岁,不是合法的年龄");
}
}
}
//小粒度与大颗粒的异常处理机制
public class ExceptionTest{
//小粒度异常处理,颗粒a
try{
String str=null;
System.out.println(str.length());//空指针异常,即 对象不存在
}catch(NullPointerException e){
System.out.println("字符串不存在,无法计算长度");
}
//小粒度异常处理,颗粒b
try{
String str3="qwertyuiop";
Date d1=DateFormat.getDateInstance().parse(str3);//ParseException
}catch{...}
//小颗粒异常相互不影响,这不好,例如ATM取钱过程有三个颗粒
//颗粒一:插入合法的银行卡 颗粒二:输入正确的密码 颗粒三:取款
//若使用小颗粒异常处理这三个异常,这插入不合法的卡,使用不正确的密码都可以取款
//改造成大颗粒异常处理机制:结构如下
try{
颗粒一 插卡;
颗粒二 验证密码;
颗粒三 取款;
...
}catch(颗粒一的异常){
处理颗粒一的异常
}catch(颗粒二的异常){
处理颗粒二的异常
}catch(颗粒三的异常){
处理颗粒三的异常
}...
//此时,插卡错误或密码错误,就无法取款
//有时使用小颗粒比大颗粒好,如:公司有三个门窗,下班后关闭每个门窗是一个颗粒,
//若有一个门窗无法没有关闭,其它的还是应该要关闭,此时使用小粒度异常处理机制
}
转载于:https://www.cnblogs.com/qixiawentang/p/5464835.html
Java基础-异常处理机制相关推荐
- 简述java的异常处理机制_简述java异常处理机制
引言: Hello,我的好朋友们,又到我们相聚的时间了,今天我要和大家分享一些有关java异常处理的相关 知识,也是通过老师的讲解和相关材料的借鉴之后的一个比较系统的总结,真心希望写完这篇文章的我和看 ...
- 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)
在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...
- JAVA的异常处理机制有什么好处,你造吗?
作为JAVA程序猿的你们,是不是在某个时刻产生一种疑问:为什么要有异常处理机制呢?还记得万有引力是怎么诞生的吗?是因为当年牛顿小朋友躺在树下,书上掉下一个苹果,引起了小牛的关注,于是产生了牛顿定理[小 ...
- java中异常处理机制
文章目录 一 认识常见异常 1 除0异常(算术异常) 2 数组越界异常 3 空指针异常 二 异常的体系 三 异常的用法(try-catch语句) 1概述与代码理解 2 注意事项 3 finally语句 ...
- 【学习笔记】JAVA基础——异常处理部分
文章目录 前言 简介 一. try.catch与finally ① try && catch ② finally ③ throws 补充:JVM 相关 二. 异常的分类 ① 分类解释与 ...
- 教妹学 Java:异常处理机制
"二哥,今天就要学习异常了吗?"三妹问. "是的.只有正确地处理好异常,才能保证程序的可靠性,所以异常的学习还是很有必要的."我说. "那到底什么是异 ...
- Java基础——异常处理
在程序运行过程中,如果JVM检测出一个不可能执行的操作,就会出现运行时错误. 在Java中,运行时错误会作为异常抛出.异常就是一个对象,表示阻止正常进行程序执行的错误或者情况.如果异常没有被处理,那么 ...
- [Java基础] 反射机制汇总
引言 初学Java反射机制的时候,只是感觉很神奇,但是不知道学了该怎么用,所以过了一段时间就忘得差不多了:最近接触到了框架,在学习中遇到了反射,深深体会到了反射机制的神奇,回来复习了一下反射机制,写一 ...
- Java基础——类加载机制及原理
一.什么是类的加载? 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结 ...
最新文章
- ssh架构之hibernate(一)简单使用hibernate完成CRUD
- 相机模拟光圈_我的相机应该使用什么光圈?
- mysql如何给表字段加密_Mysql 字段加密
- clipse中Access restriction: The type ‘XXX’ is not API 解决
- linux平台下C语言按进程名查找进程号pid
- java反射取实体字符串_JAVA反射机制 通过反射 Field类获取和修改对象类的字符串值...
- 整古专家之恶意批处理命令
- 游学只缘图利国 求知理应做腾骧
- 计算机坐标公式,经纬度换算坐标公式(经纬度转大地坐标公式)
- 麻辣探:大学生就业翻译竞争激烈 IT制造需求大
- ubantu 14.04重置密码
- PLC MODBUS RTU读写IC卡操作
- Java远程开关机(全过程)
- linux 龙芯cpu 测试,龙芯CPU实测!对比赛扬 没想到会这样
- bat一键清理系统垃圾/系统日志
- Opencv之Unsharp Mask(USM)锐化
- 机器学习常用性能度量中的Accuracy、Precision、Recall、ROC、F score等都是些什么东西?...
- 网络游戏安全小议(端游/页游/手游)
- 页面怎么导出html文件大小,报表HTML导出时自适应页面大小
- HCIA的OSI基础模型理解
热门文章
- HALCON学习之旅(一)
- 写给萌新们的Python安装及环境配置(anaconda,pycharm,GPU)教程
- CNN卷积神经网络分析
- Spark常用的算子以及Scala函数总结
- 调优哪家强——tensorflow命令行参数
- mysql group by能用到索引吗_`MySQL GROUP BY使用索引时速度较慢
- 因为此网站使用了 hsts_长春定制小程序服务,网站设计市场价格
- Idea中Spring整合MyBatis框架中配置文件中对象注入问题解决方案
- 应用在tomcat下的四种部署方式(原创)
- Android之自定义checkbox样式