Throwable: 异常的顶级父类
            ----Error:错误,程序无法处理
            ----Exception:异常,可通过编码修复
                        ----编码异常:未运行已经报错
                        ----运行异常:可编译,运行报错

1.  Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
    at cn.tedu.basic.TestArray.main(TestArray.java:11)
    ------数组下标溢出异常
    
2.    There is no default constructor available in 包名 
    ------没有可用的默认构造函数
    ---解释:父类的含参构造覆盖了默认的无参构造,子类默认不显示的super()
    不能调用父类对应参数的构造方法,
    -解决办法:子类添加super(参数)
    
3.    ArithmeticException
    ----算术异常
    --例子:10/0 :0不能作为除数
    
4.    InputMismatchException
    ----输入不匹配异常
    --解释:输入的数据类型与自己预先定义的数据类型不匹配
    
5.    StackOverflowError
    ----堆栈溢出错误
    --解释:内部类和外部类一直互相调用占据了所有内存
            一直在创建内部类或外部类对象
例:Outer o = new Outer();o.eat();/*创建外部类对象,调用外部类*/---Inner i = new Inner();i.eat2();/*一直创建内部类对象,调用内部类*/---Inner i = new Inner();/*一直创建内部类对象*/
public class TestInner {
    public static void main(String[] args) {
        //Outer.Inner oi =new Outer().new Inner();
        Outer o = new Outer();
        o.eat();
        //oi.eat2();
    }
}
class Outer{
    private String name ="小二";
            int a =10;
    public void eat(){
        Inner i = new Inner();
        i.eat2();
        System.out.println(i.sum);
        System.out.println("外部类eat");
        System.out.println(i.toString());
        try {
            finalize();
        } catch (Throwable throwable) {
            throwable.printStackTrace();
        }
    }
    public static void good(){

System.out.println("外部类静态good()");

}

class Inner{
        Inner i = new Inner();
            //private double S =10.1;
            int sum =10;
        public void eat2(){
            System.out.println(i.toString());
            //Outer.good();
            System.out.println(name);
            System.out.println(a);
            System.out.println("内部类eat2()");
        }

}
}

6.    NullPointExcept -- 空指针异常
    ----调用空对象的实例方法。
        访问或修改字段或空对象。
        以null的长度作为数组。
        访问或修改null插槽,就好像它是一个数组一样。
        将null视为Throwable值。
        --解决办法:可以通过适当地初始化给定对象(该对象将设置该对象的实例)来解决或解决。 因此,该对象将具有一个实例,并且不会为null,这是Null Pointer Exception的原因。
                    在捕获异常外面加一个非空判断
        --例:FileReader in = null;//定义的变量为空值,所以在下面需要赋值,否则后面使用对象in时一直为空
              new FileReader("D:\\ready\\1.txt");          
              
              
7.    FileNotFoundException -- 文件无法找到
    ----文件位置更换
        文件名、目录名或卷标语法不正确。

8.    InvalidClassException -- 无效类异常
    ----解释:stream classdesc serialVersionUID = -3193364654654535741,  自动生成的默认UID
              local class serialVersionUID = 3102686376622831557, 改动代码后生成的UID
        --解决办法:使前后UID保持一致:序列化与反序列化同时或者按顺序一个一个执行,
                    再或者手动将序列化版本号写出固定值 //private static final long serialVersionUID = 1L;
                    
9.    NotSerializableException -- 不可序列化异常
    ----要序列化对象所在的类并没有实现序列化接口,即没有implements父接口
        --解决方案:实现序列化接口
        
10.    Error:(27, 25) java: 未报告的异常错误java.lang.InterruptedException; 必须对其进行捕获或声明以便抛出
    ----中断异常:当阻塞方法收到中断请求的时候就会抛出InterruptedException异常
        --/*让每个进来循环的线程对象,都经历休眠10ms,增加错误出现的概率*/
                Thread.sleep(10);//让线程休眠10秒
例:
/**
 * 设计多线程编程模型,4个窗口共计售票100张
 * 本方案使用多线程实现方案1:implements Runnable来完成
 */
public class TestThread2 {
    public static void main(String[] args) {
        //创建自定义类对象
        TicketRunnable target = new TicketRunnable();
        创建自定义线程对象
        Thread t1 = new Thread(target);
        Thread t2 = new Thread(target);
        Thread t3 = new Thread(target);
        Thread t4 = new Thread(target);
        t1.start();
        t2.start();
        t3.start();
        t4.start();
    }
}

//1.创建自定义多线程类实现多线程接口
class TicketRunnable implements Runnable{
    //定义变量用来保存要收买的票数
    int tickets = 100;
    //重写run(),完成业务
    @Override
    public void run() {
        //循环卖票
        while (true){
            synchronized (TicketRunnable.class){
                if(tickets>0){
                    try {
                        /*让每个进来循环的线程对象,都经历休眠10ms,增加错误出现的概率
                         * 问题一:产生重卖的现象:同一张票卖给了多人--同步锁synchronized (类名.class){}
                         * 问题二:产生了超卖的现象:超出了规定的票数100,出现了0,-1,-2这样的票 --if(tickets>0){}*/
                        Thread.sleep(10);//让线程休眠10秒
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    //打印当前正在卖票的线程名称,并且票数减一
                    System.out.println(Thread.currentThread().getName()+"="+tickets--);
                }
                //做判断,如果没票了就停止循环卖票
                if (tickets<=0)break;
            }
        }
    }
}

11.    NoSuchMethodException -- 没有这个方法异常
    ----构造方法的含参及全参,使用反射创建含参对象时,不报错但会出异常
    
12. ClassCastException -- 类抛出异常,
    ----即是类型转换错误,通常是进行强制类型转换时候出的错误
例子:a1和a2都是动物,但是a1这只动物是一只狗,而a2这只动物是猫,所以要把a1转换成狗可以,因为a1本身就是狗,而a2是一只猫,所以要转换成狗就出错
class Animal{}
class Dog extends Animal{}
class Cat extends Animal{}
public class Test7 {
    public static void main(String[] args){
        Animal a1 = new Dog();//父类引用指向子类对象                                                                                                                                                                                                                                                                                                                                                
        Animal a2 = new Cat();
        Dog d1 = (Dog)a1;//强制父类引用类型转换为子类引用类型
        Dog d2 = (Dog)a2;
    }
}

13. IllegalArgumentException -- 非法参数异常
    ----传入的参数违反了一个方法要求的某些特性
    
14. MyBatisSystemException -- MyBatis 系统异常

java中的常见异常1 -- 新手上路,减速慢行相关推荐

  1. java中的常见异常

    1. java.lang.NullPointerException(空指针异常)  调用了未经初始化的对象或者是不存在的对象 经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时 ...

  2. Java基础学习系列--(七)彻底搞懂java中的【异常、线程】的使用

    第一章 异常 1.1 异常概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中, ...

  3. unchecked异常_为什么要在Java中使用Unchecked异常而不是Checked异常

    unchecked异常 关于检查与未检查的异常的争论可以追溯到过去. 有人说这是Java包含的最佳功能之一. 其他人则说这是他们最大的错误之一[ 1 ]. 辩论似乎结束了. 在这篇文章中,我将尝试包含 ...

  4. 为什么要在Java中使用Unchecked异常而不是Checked异常

    关于检查与未检查的异常的争论可以追溯到过去. 有人说这是Java包含的最佳功能之一. 其他人则说这是他们最大的错误之一[ 1 ]. 辩论似乎结束了. 在这篇文章中,我将尝试包含指向该主题的文章和书籍的 ...

  5. java if (name!=null name!=),java中的NullPointerException异常

    java中的NullPointerException异常 关注:176  答案:3  mip版 解决时间 2021-01-27 20:59 提问者侢遇噹姩揂 2021-01-27 02:10 Logi ...

  6. java 异常 中英文_史上最全的Java中所有Exception异常中英文对照

    Java中所有Exception异常中英文对照AclNotFoundException, 如果对不存在的访问控制列表进行访问,则会 ArithmeticException 算数异常 ArrayInde ...

  7. java中两种异常类型_Java中的三种异常类型

    java中两种异常类型 Errors are the bane of users and programmers alike. Developers obviously don't want thei ...

  8. 如何处理 Java 中的 NumberFormat 异常

    NumberFormatException是 Java 中的未经检查的异常,当尝试将格式不正确的字符串转换为数值时发生.因此,当无法将字符串转换为数字类型(例如 int.float)时会引发此异常.例 ...

  9. JAVA中的常见Bug

    作为游戏程序开发者,你的日常是这样吗? 每日常态是这样吗? 作为编程开发者那自然就要对程序中的常见的异常有一定的了解.在这里我列出几个常见的程序中的异常方便学习Java的新手进行查改 Java.lan ...

最新文章

  1. Linux / TCPIP / 判断 client 已经关闭的方法
  2. php简述一下并集交集差集,总结了一下js中的差集、交集、并集
  3. 2017年第八届蓝桥杯 - 国赛 - C/C++大学B组 - A. 36进制
  4. leetcode132. 分割回文串 II(dp)
  5. 计算机拆卸组装过程,如何拆卸并重新组装笔记本电脑
  6. 控制台下修改系统驱动状态的代码
  7. 快递送不上门,谁的锅?
  8. mysql 表 组织 管理_MySQL 基础知识梳理学习(二)----记录在页面层级的组织管理...
  9. 前端主流的 Javascript,缺失了哪些技能?
  10. 3DSMAX安装未完成,某些产品无法安装的解决方法
  11. kubernetes英语怎么读_小学三年级英语怎么学
  12. 如何实现Miracast多个设备同时连接投屏
  13. 应用统计学学什么科目_应用统计学考研科目及总数
  14. 算法与数据结构——有序表(Java)(b站左程云课程笔记总结)
  15. 你为什么要去博物馆? 我的理由比较另类
  16. 抖音主页头图怎么设置,掌握以下5点技巧即可丨国仁网络资讯
  17. 中文域名正确注册、配置、使用
  18. element遮罩_element-ui遮罩层el-dialog的使用
  19. x265 (HEVC编码器,基于x264) 介绍
  20. 深信服“监控员工跳槽倾向”引争议,律师称未告知员工涉嫌违法

热门文章

  1. java考研方向,值得推荐!
  2. 电脑开不了机的原因和解决办法
  3. 在python中get是什么意思_python get函数有什么作用?示例解析
  4. 阿里天池项目:淘宝电商数据分析(mysql)
  5. 携手推进国产化发展,未来智安与麒麟软件完成兼容互认证
  6. 非功能性需求基础概念
  7. 显示性能指标的计算机术语是,下列计算机术语中,属于显示器性能指标的是()...
  8. 幂法求矩阵的最大特征值和对应特征向量
  9. 阿里巴巴国际站产品标题优化技巧
  10. HTML——表格、表格嵌套、表格布局