4.常见简单异常的解决办法

4.1 常见的异常类型

1.运行时异常 RuntimeException

a) 算术异常 ArithmeticException
b) 空指针异常 NullPointerException
c) 类型转换异常 ClassCastException
d) 数组下标越界 ArrayIndexOutOfBoundsException
e) 期 望 的 数 据 类 型 与 实 际 输 入 类 型 不 匹 配
InputMismatchException
2.检查时异常 Checked Exception

a) SQLException
b) IOException
c) ParseException
要求必须做处理,
(1) throws 向上声明
(2) try-catch-finally

import java.util.Scanner;

public class TestRuntimeException {
    public static void main(String[] args) {
        //(1)算术异常
        int b=0;
        if(b!=0){
            int result=1/b;
        }else{
            System.out.println("对不起除数不能为0");
        }
        
        //(2)空指针异常,没有创建对象(new)而调用了对象的属性或方法 NullPointerException
        String str=null;
        if(str!=null){
            System.out.println(str.length());
        }
        //(3)类型转换异常ClassCastException
        Animal dog=new Dog(); //向上类型转换
        if(dog instanceof Cat){  //boolean
            Cat c=(Cat)dog; //向下类型转换,转换成真实的子类对象
        }
        //(4)数组下标越界ArrayIndexOutOfBoundsException
        int []arr={11,22,33};//长度3
        int index=3;
        if(index<arr.length-1){
            System.out.println(arr[index]);
        }else{
            System.out.println("数组下标越出了边界");
        }
        //(5)期望的数据类型与输入的数据类型不相匹配InputMismatchException
        Scanner input=new Scanner(System.in);
        //解决问题
        if(input.hasNextInt()){  //boolean  -->true,  false
            int a=input.nextInt();
            System.out.println(a);
        }else{
            System.out.println("对不起,输入的类型与期望的类型不匹配");
        }
        
    }
}
class Animal{
    
}
class Dog extends Animal{
    
}
class Cat extends Animal{
    
}




import java.io.File;
import java.io.IOException;

public class TestCheckedException {
    public static void main(String[] args) {
        //检查时异常,N多个程序在编译期间必须处理的异常的一总称
        
        /*
         * 处理方式:
         * 要求必须做处理,
                (1) throws 向上声明
                (2) try-catch-finally
         * 
         * **/
        File f=new File("D:\\a.txt");
        try {
            f.createNewFile();//创建新文件
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }//在D盘创建一个名称为a.txt的文件
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值