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. jsoncpp linux平台编译和arm移植

    下载 http://sourceforge.net/projects/jsoncpp/ 或者 http://download.csdn.net/detail/chinaeran/8631141 Lin ...

  2. SpringCloud实战-Hystrix线程隔离&请求缓存&请求合并

    接着上一篇的Hystrix进行进一步了解. 当系统用户不断增长时,每个微服务需要承受的并发压力也越来越大,在分布式环境中,通常压力来自对依赖服务的调用,因为亲戚依赖服务的资源需要通过通信来实现,这样的 ...

  3. python 匿名函数与三元运算

    匿名函数 匿名函数就是不需要显示式的指定函数名 首先看一行代码: def calc(x,y): return x*y print(calc(2,3)) # 换成匿名函数 calc = lambda x ...

  4. SpringMVC中的异常处理

    springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 1. 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeExc ...

  5. String的charAt(int index)可用于遍历一个字符串的所有字符

    charAt(int index)遍历一个字符串的所有字符实例 String name = "Whatisjava?"; for (int i = 0; i < name.l ...

  6. Oracle-13:Oracle中的表分区

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客记录了表分区 表分区的含义: 典型的拿空间换时间的案例! 表分区对一张表进行分区,分区之后表中的数据存 ...

  7. SSM-MyBatis-10:Mybatis中SqlSession的getMapper()和简单的工具类MyBatisUtils

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- getMapper的作用,获取到接口,直接通过点的方式调用方法,以免直接手打的方式写错方法名,(强类型的方式) ...

  8. Axios 中文说明

    Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. Features 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http  ...

  9. Servlet到底是单例还是多例你了解吗?

    为一个Java Web开发者,你一定了解和学习过Servlet.或许还曾在面试中被问到过Servelt是单例还是多例这个问题. 遇到这个问题,你是否曾深入了解过,还是百度或者Google了一下,得到答 ...

  10. Loadrunner 11 中Run-Time Setting详细参数说明

    .General/Run Logic :用来设置运行脚本迭代的次数,迭代次数只对run部分的脚本迭代次数有影响,对init和End部分无印象.一般设置未1~3次,只会影响在单位时间内客户端想服务器提交 ...