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第二十天,接触异常处理,自定义异常的更多相关文章

  1. 从零开始学 Java - Spring MVC 统一异常处理

    看到 Exception 这个单词都心慌 如果有一天你发现好久没有看到Exception这个单词了,那你会不会想念她?我是不会的.她如女孩一样的令人心动又心慌,又或者你已经练功到了孤独求败,等了半辈子 ...

  2. 从零开始学 Java - 我放弃了 .NET ?

    这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Ja ...

  3. 从零开始学 Java - log4j 项目中的详细配置

    你还会用笔来写字么 我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来:有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了:有时候写出来了一大堆字之后, ...

  4. 测试人员学Java入门指南

    目标读者 本指南特别适合有Python基础的同学学习Java入门,对于没有任何编程经验的同学可能会存在困难. 为什么测试人员要学Java 选择Java,应该不错.TesterHome测试论坛知名大佬基 ...

  5. Java & Android未捕获异常处理机制

    一.背景 无论是Java还是Android项目,往往都会用到多线程.不管是主线程还是子线程,在运行过程中,都有可能出现未捕获异常.未捕获异常中含有详细的异常信息堆栈,可以很方便的去帮助我们排查问题. ...

  6. 小白学Java:I/O流

    目录 小白学Java:I/O流 基本分类 发展史 文件字符流 输出的基本结构 流中的异常处理 异常处理新方式 读取的基本结构 运用输入与输出 文件字节流 缓冲流 字符缓冲流 装饰设计模式 转换流(适配 ...

  7. 五分钟学Java:如何才能学好Java Web里这么多的技术

    原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...

  8. 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)

    从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...

  9. java基础系列--Exception异常处理

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7191280.html 1.概述 Java代码中的异常处理是非常重要的一环,从代码中可以看到 ...

随机推荐

  1. CSS学习笔记三:自定义单选框,复选框,开关

    一点一点学习CCS,这次学习了如何自定义单选框,复选框以及开关. 一.单选框 1.先写好body里面的样式,先写几个框 <body> <div class="radio-1 ...

  2. Python:怎样用线程将任务并行化?

    如果待处理任务满足: 可拆分,即任务可以被拆分为多个子任务,或任务是多个相同的任务的集合: 任务不是CPU密集型的,如任务涉及到较多IO操作(如文件读取和网络数据处理) 则使用多线程将任务并行运行,能 ...

  3. django+appium实现UI自动化测试平台---构思版

             背景 UI自动化,在进行的过程中,难免会遇到平台化, 在实际的工作中,有的领导也会想要实现自动化测试的平台化.自动化平台化后,有了更为实际的成果, 在做UI自动化,很想吧现在的自动化 ...

  4. 结构化您的Python工程

    我们对于"结构化"的定义是您关注于怎样使您的项目最好地满足它的对象性,我们 需要去考虑如何更好地利用Python的特性来创造简洁.高效的代码.在实践层面, "结构化&qu ...

  5. js算法初窥01(排序算法01-冒泡、选择、插入)

    排序,我想大家一定经历过或者正在经历着.或许你不懂算法,对排序算法一无所知,但是你一定用过一些第三方库的api来一键排序,那么,在你享受便捷的同时,你是否想过它的底层是如何实现的?这样的算法实现方式是 ...

  6. 并发库应用之七 & 信号灯Semaphore应用

    Semaphore可以维护当前访问自身的线程个数,并且提供了同步机制. Semaphore实现的功能类似于厕所里有5个坑,有10个人要上厕所,同时就只能有5个人占用,当5个人中 的任何一个让开后,其中 ...

  7. 加密原理介绍,代码实现DES、AES、RSA、Base64、MD5

    阅读目录 github下载地址 一.DES对称加密 二.AES对称加密 三.RSA非对称加密 四.实际使用 五.关于Padding 关于电脑终端Openssl加密解密命令 关于网络安全的数据加密部分, ...

  8. Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务

    1 前言 之前整理了一个spring+jotm实现的分布式事务实现,但是听说spring3.X后不再支持jotm了,jotm也有好几年没更新了,所以今天整理springboot+Atomikos+jp ...

  9. libevent库简单使用

    一.libevent库简介 Libevent是一个用于开发可扩展性网络服务器的基于事件驱动(event-driven)模型的网络库.Libevent有几个显著的亮点: (1)事件驱动(event-dr ...

  10. iOS常用控件尺寸大集合

    元素控件 尺寸(pts) Window(含状态栏) 320 x 480 Status Bar的高度 20 Navigation Bar的高度 44 含Prompt的Navigation Bar的高度 ...