学JAVA第二十天,接触异常处理,自定义异常
1.java.lang.NullPointerException(经常报)(运行时异常) 属于运行时异常,是编译器无法预知的异常,比如你定义了一个引用变量String a,但是你确没有用new关键字去实例化这个变量,
但是你又调用这个a的方法,所以会报这个空指针异常 解决办法有两种
一,在调用这个变量是判断先if(null!=a)
二,try..catch捕获异常可以让程序继续执行
2.java.lang.ClassCastException(转换错误)
3.java.lang.ArithmeticException(运算错误)
4.java.lang.ArrayIndexOutOfBoundsException(越界错误)
5.java.lang.ClassNotFoundException(找不到类)通常是 打错字或 环境配置问题,例如classpath或者maven等没下载包成功
6.java.lang.SQLException(SQL语句有异常)
首先,异常分为捕捉异常(try--catch--finally),声明抛出异常(throws),
try{……}会对代码块里面代码进行检查,对可能会生成异常对象进行抛出。
catch{……}这是对try抛出的异常进行处理,代码块写处理代码。
finally{……}这里边的代码是一定会被执行的。通常用于清理与释放资源
其中,今天老师讲的是:自定义异常。其目的是进行分类讨论。
代码:
public class Test{
public static void main(String args[]) throws Exception{
//学生正常学习,
//但有各种异常:1.肚子疼-->>看医生
// 2.呕吐-->>叫前面的同学送医院,
// 叫隔壁的同学打扫卫生
// 3.不会做-->>问同学问老师
// 4.睡着了-->>切磋一下
//第一步:定义不同的异常类(extends Exception)
//try catch()...
try{
Student s = new Student();
s.study();//如果这里发生了异常,try代码段将停止,并把异常给到catch进行处理。其他代码不会停止
System.out.println("学java学得很爽");
}
catch(Exception e1){
System.out.println(e1.getMessage());吧处理的异常进行打印,方便查看
}
System.out.println("程序继续运行1");
System.out.println("程序继续运行2");
System.out.println("程序结束");
}
}
public class Student{
public void study() throws 肚子疼,呕吐,不会做,睡着了{//这是继承了报告的异常,也就是数可能发生的异常,然后下边要自定义相应的异常类
System.out.println("ok come in");
}
public void study(String i) throws 肚子疼,呕吐,不会做,睡着了{
if (i.equals("肚子疼")){
throw new 肚子疼();//找到相应的异常
}
if(i.equals("呕吐")){
throw new 呕吐();
}
if(i.equals("不会做")){
throw new 不会做();
}
if(i.equals("睡着了")){
throw new 睡着了();
} else{
System.out.println("其他异常!!!");
}
}
}
下边的异常都是自定义的
public class 肚子疼 extends Exception{//把相应的异常进行处理
private String message = "看医生";
@Override
public String getMessage(){
return message;
}
}
public class 呕吐 extends Exception{
private String message = "叫前面的同学送医院,叫隔壁的同学打扫卫生";
@Override
public String getMessage(){
return message;
}
}
public class 不会做 extends Exception{
private String message = "问同学问老师";
@Override
public String getMessage(){
return message;
}
}
public class 睡着了 extends Exception{
private String message = "切磋一下";
@Override
public String getMessage(){
return message;
}
}
可能是我的语言组织能力不太好,有一些相应的细节无法用文字表达出来,还望谅解!!!
出学者,有不对的地方,还望各位大佬指点指点!!!
学JAVA第二十天,接触异常处理,自定义异常的更多相关文章
- 从零开始学 Java - Spring MVC 统一异常处理
看到 Exception 这个单词都心慌 如果有一天你发现好久没有看到Exception这个单词了,那你会不会想念她?我是不会的.她如女孩一样的令人心动又心慌,又或者你已经练功到了孤独求败,等了半辈子 ...
- 从零开始学 Java - 我放弃了 .NET ?
这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Ja ...
- 从零开始学 Java - log4j 项目中的详细配置
你还会用笔来写字么 我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来:有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了:有时候写出来了一大堆字之后, ...
- 测试人员学Java入门指南
目标读者 本指南特别适合有Python基础的同学学习Java入门,对于没有任何编程经验的同学可能会存在困难. 为什么测试人员要学Java 选择Java,应该不错.TesterHome测试论坛知名大佬基 ...
- Java & Android未捕获异常处理机制
一.背景 无论是Java还是Android项目,往往都会用到多线程.不管是主线程还是子线程,在运行过程中,都有可能出现未捕获异常.未捕获异常中含有详细的异常信息堆栈,可以很方便的去帮助我们排查问题. ...
- 小白学Java:I/O流
目录 小白学Java:I/O流 基本分类 发展史 文件字符流 输出的基本结构 流中的异常处理 异常处理新方式 读取的基本结构 运用输入与输出 文件字节流 缓冲流 字符缓冲流 装饰设计模式 转换流(适配 ...
- 五分钟学Java:如何才能学好Java Web里这么多的技术
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)
从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...
- java基础系列--Exception异常处理
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7191280.html 1.概述 Java代码中的异常处理是非常重要的一环,从代码中可以看到 ...
随机推荐
- Page_Load不要忘了if (!IsPostBack)
Page_Load不要忘了if (!IsPostBack) 问题:在DropDownList的SelectedIndexChanged事件中绑定数据,运行时,DropDownList控件的Select ...
- 再探Circuit Breaker之使用Polly
前言 上一篇介绍了使用Steeltoe来处理服务熔断,这篇我们将用Polly来处理服务熔断. 不废话了,直接进正题. 简单的例子 同样先定义一个简单的服务. [Route("api/[con ...
- 读《图解HTTP》有感-(返回结果的HTTP状态码)
写在前面 HTTP状态码是由服务端产生,用于告诉客户端,服务端处理结果的编码 正文 1.状态码的作用是什么?具有什么特征? 状态码的作用是当客户端向服务器发送请求时,描述服务器的响应结果(如:服务器正 ...
- JS的进阶技巧
前言 你真的了解JS吗,看完全篇,你可能对人生产生疑问. typeof typeof运算符,把类型信息当做字符串返回. //正则表达式 是个什么 ? typeof /s/ // object //nu ...
- synchronized(this) 与synchronized(class) 之间的区别
一.概念 synchronized 是 Java 中的关键字,是利用锁的机制来实现同步的. 锁机制有如下两种特性: 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机 ...
- sql语句的一些案列!
http://www.cnblogs.com/skynet/archive/2010/07/25/1784892.html
- toFixed()一不小心踩了一个坑
toFixed,多么简单的一个函数,昨天突发奇想做两道算法题练练手.结果,踩到了一个从未遇到的坑! \n 简单来讲是要对输入的很多组数据,自己写一个函数做个处理,把每次函数处理的结果要相加求和.最后输 ...
- javascript 正则表达式补充
定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- 5.两分钟让你明白app后端有啥用
app后端,也称为app后台,称呼不一样,但指的是同一个东西. 我一直都以app后端有啥用这个问题不用解释.但在网络上,有准备进行app创业的网友(是从传统行业过来的)问过这个问题,我这里就以app后 ...
- html5中viewport与meta详解
网上解释手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中 ...