Java的常见异常

Java的常见异常

//注意方法是通过对象调用
异常分为两种:
1,越界异常
2,空指针异常

  1. 越界异常
int[]sz=new int[10];
syso.sz[10]

2,空指针异常

list<String> list=new ArrayList<string>()
list.get(0);
try
{
    Student s = null;
    System.out.println(s.name); 
    int[] sz = new int[10];
    System.out.println(sz[10]);
    int i = 0;
    System.out.println(10/i);
    }
catch(Exception e)
    {
        e.printStackTrace();
        //throw new Exception();
    }
    java.lang.NullPointerException
        Student s = null;
        System.out.println(s.name);

        JFrame jf = null;
        System.out.println(jf.EXIT_ON_CLOSE);

算数错误

int i=0;
syso.10/i;

转换格式异常

string s=”a”;
s=(int) a;//这里强调的是string类型的a不可以转化为int型,但是,如果是string类型的11(类似这种就可以转化为int型)

异常就是代码运行时出现的错误,不是编译时期,即出现的时期是Java时期不是javac时期。

发生异常时虚拟机会封装对象;
发生异常时会一直报异常情况,一直到main函数才会发生中断,不然一直抛出异常;

处理方法:
try
{

}
catch(NumberFormatException ne)
{
ne.printStackTrace();处理异常
System.out.println(“传入的不是参数”);
}
Finally
{

}//异常处理的统一出口

异常分类

Throwable:所有异常父类,分为error和exception
Error:系统内部异常,无法处理
Exception:捕捉并且处理
Exception分为RuntimeException(常常发生的)和非运行异常
自定义异常
业务异常时Java虚拟机抛不出来异常
抽象类才能继承,继承类抽象方法,但是如果不设置为抽象的可以设置成报异常,只要不继承就有异常
1, 声明方法会抛异常,
2, 用try{}catch{}

public static int calcPlus(String s1 ,String s2) 
{

    try {
        int parseInt1 = Integer.parseInt(s1);
        int parseInt2 = Integer.parseInt(s2);
        System.out.println("try");
        return parseInt1 + parseInt2;
    } catch (Exception e) {

    }
    finally
    {
        System.out.println("finally");
    }

    return -1;

“`
3, 调用别人的接口最好try{}catch{}

public class Son extends AbstractFather{

}

Getmessage方法:构造出来显示异常信息的

public class LoginException extends RuntimeException {
String username;String password;
public LoginException(String username,String password)
{
    this.username = username;
    this.password = password;
}

public String getMessage() {

String s = "a" + "b";

    //String        
    //StringBuffer--StringBuild
    //HashMap  -- HashTable
    //ArrayList -- Vector
    //
    StringBuffer sb = new StringBuffer();

    sb.append("用户名,密码不一致");
    sb.append("用户名是");
    sb.append(username);
    sb.append("密码是");
    sb.append(password);

    return sb.toString();
}
}

Throw和throws区别:前者是指函数每部抛异常,后者是在函数名上声明要抛异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值