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. 破解linux虚拟机的密码

    虚拟机破解秘密码步骤:          虚拟机(server)的登录通常需要一个本地用户,而本地用户密码假如不知道或者是已经忘记了,也是有办法进入的,在Linux系统内就有可以提供这种可以进入的方案 ...

  2. 使用Java API连接和操作HBase数据库

    创建的数据库存储如下数据 表结构 java代码 public class HbaseTest { /** * 配置ss */ static Configuration config = null; p ...

  3. JavaScirpt的this指向 apply().call(),bind()个人笔记

    写在前头: 本站内容为个人学习记录,纯属个人观点,不喜勿喷,欢迎指正! 笔记记录缘由:JavaScript的流行趋势已经势不可挡,衍生的AngularJs,Node.js,BootStrmp中小企业的 ...

  4. 洛谷 P2491 解题报告

    P2491 消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个 ...

  5. ImportError: cannot import name webdriver

    遇到问题: 学习selenium过程中为了方便自己知道学习的脚本的存放路径,以selenium命名 起初.py文件都在selenium文件夹下面,使用 from selenium import web ...

  6. Tair总述

    Tair 是淘宝自己开发的一个分布式 key/value 存储引擎.tair 分为持久化和非持久化两种使用方式.非持久化的 tair 可以看成是一个分布式缓存.持久化的 tair 将数据存放于磁盘中. ...

  7. mysql物理备份基本操作

    Ⅰ.xtrabackup介绍 xtrabackup只能备份innodb引擎的数据,不能备份表结构,percona开源的,强烈推荐最新版本(旧版本bug多) innobackupex可以备份myisam ...

  8. Golang 嵌套map赋值办法

    http://my.oschina.net/sol/blog/159060 m := map[string]map[string]string{} mm, ok := m["kkk" ...

  9. cassandra 在window上的demo

    Cassandra   window使用 1.        下载:http://cassandra.apache.org/download/. 2.        解压后,bin目录下,cassan ...

  10. 树链剖分的一种妙用与一类树链修改单点查询问题的时间复杂度优化——2018ACM陕西邀请赛J题

    题目描述 有一棵树,每个结点有一个灯(初始均是关着的).每个灯能对该位置和相邻结点贡献1的亮度.现有两种操作: (1)将一条链上的灯状态翻转,开变关.关变开: (2)查询一个结点的亮度. 数据规模:\ ...