第十次课后笔记

Java异常处理与自定义异常详解

第十次

1.1    异常处理

 1.java的异常分为Exception(异常)和Error(错误)两大类。Exception类解决由程序本身及环境所产生的异常,而Error类则处理较少发生的内部系统错误。Exception类异常可以被捕获并进行相应处理,不是错误,只是在反应不良情况。而对于Error类异常,程序员通常无能为力,只能在其发生时由用户按照系统提示关闭程序。

 2.错误分为系统错误和应用程序错误。

  系统错误有:CPU  硬盘   内存条

                  底层调用错误(开发时)

 

   应用程序错误   语法错误       系统错误

                                     类不存在

                  运行时错误

                                 数据操作错误    传输错误

 

                                                数据结构错误

3.异常处理的方式有两种:第一种方式是使用try…catch…finally结构对异常进行捕获和处理;第二种方式是通过throws和throw抛出异常。

4.try{

  正常流程   //代码区

}catch(意外状况){

   捕获区域

}catch(通用处理){           用综合陷阱则要用陷阱的父类catch(Exception){  }

  throw ex; 抛出错误

}fially{

 

}

5.不论前面对错,都要执行finally后面的语句。

6.Test t=null;

  t toString();    //空指针异常

 catch(NullPointException  ex){

   throw ex;

catch new NullPointException   //重新创建异常对象

}

7. getMessage():String  得到错误的信息;

printStackTrace():void  打印竖状的异常报错信息;

Throwable(String)   构造器;

8.方法的调用成功或者失败不仅只用返回值表示,用异常来提示。

9.publicstatic void setAge(int age) throws Exception,ArroyIndexOutOfException

  {

If(age>100 || age<0 ){

 Throw newexception(“aaa”);

 }finally{

  赋值语句

}

}

public static void main(String[] s){

 try{

 setAge(10);

 System.out.println(“成功”);

}catch(Exception e){

 System.out.println(“失败”);

}

}

异常就是另一种代码和结构。在方法里抛出异常,在try里只写正确的代码,正确的思路,正确的过程,将错误写在catch里。

10.2自定义异常

1.public classAs {

    public static void regUser(String username,String password)

            throwsUserRegErrorException {

        if (username.length() <= 3 ||password.length() <= 3) {

            throw new UserRegErrorException("用户名或密码长度不够!");

        }

        System.out.println("注册成功!");

    }

 

    public static void mm(String username,String password)

            throws UserRegErrorException {

        regUser(username, password);

    }

 

    public static void main(String[] args) {

        try {

            mm("asssa","aa");

        } catch (UserRegErrorException e) {

            // TODO Auto-generated catch block

            // e.printStackTrace();

            System.out.println(e);

        }

    }

}

public classUserRegErrorException extends RuntimeException {

 

    public UserRegErrorException() {

 

    }

 

    public UserRegErrorException(String message){

        super(message);

    }

 

    public String toString() {

 

        return "您传递的用户名或密码有问题,请重新传递!";

    }

}

10.3

1.创建类时带上包,包+类名是类的全名,访问用全名。package com;

2.以com开头的类是公司;以org开头的是社会组织

  命名一般格式:com+公司名/协会+项目组+项目名称+模块

3.package a;

  Class Test1{

   Public void Test(){  }

  }

  Class Test2{

  }

 Package b;

 import a.*;

 class Test2{

  Test1 t=new Test1();

  a.Test2 t1=new Test2();

 }

4.还可以引用a包下的方法,用import static a.Test1.*;

5.常见的几个包:

Java.nat :网络    Java.sql    Java.swing :高级图形化

Java.io :输入输出     Java.awl    

Java.util   Java.ejb     Java.applet :网页小程序 

Java.text :文本处理     Java.rmi  远程方法调用

Javax.sql集合     Javax.xml      Javax.servlet

Javax.imageio :图形处理    Javax.print :打印机    Javax.jws.soap :集成开发

Javax.sound :声音技术

Javax包是java的扩展和规范

6.class.forName(“类的全名”);  动态加载类

 Try{

    Class.forName(“A”);  //动态加载

  }catch (classNotFoundException e){

   e.printStackTrace();

 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值