异常课堂笔记

package com.xuezhi.www.proj;

/*异常,在现实生活中或者是Java程序中,总会出现一些不正常的情况,特别是在 Java程序中出现了不正常的情况,我们称作异常

  • 在Java程序中也会出现不正常的情况,Java时面向对象的语言,任何事务都可以使用类来进行描述,sun就是用了很多的类来描述Java程序中的各种不正常的情况
  • 而用于描述程序不正常情况的类,我们就称作为异常类,很多歌异常类堆积起来就形成了Java中的异常体系
  • 异常体系:
  • -------|throwable 所有异常类和错误类的超类
  • ---------|errow 错误一般是由jvm和硬件引起的问题,所以我们一般不会通过代码来处理错误
  • ----------|exception 异常是需要通过代码来处理的
  • ----------|编译时异常(受检异常,非运行时异常):必须处理的异常
  • ----------|运行时异常:如果一个方法内部抛出了一个运行时异常,那么调用者可以处理液可以不处理
  • 运行时异常:RUNtimeException以及RUNtimeException的子类都是运行时异常
  • 编译时异常:除了运行时异常都是编译时异常
  • 疑问:为什么运行时异常要求如此宽松?
  • 答:因为运行时异常都是可以通过程序员良好的编程习惯避免的,所以Java编译器就没有严格的要求处理运行时异常
  • 如何区分错误遇异常:
  • 如果程序出现了不正常的信息,如果不正常的信息是以error(除了线程死亡)结尾的,那么肯定是一个错误,
  • 如果是以exception结尾的,那么肯定是一个异常。
  • throwable常用的方法:
  • toString():返回当前异常对象的完整类名+病态信息
  • getMessage():返回的时创建throwable对象传入的字符串信息
  • printStackTrace():打印异常的栈信息。

*/
public class ThrowableAndErro {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	/*Throwable t=new Throwable("富贵病");
	 System.out.println(t.toString());
	 System.out.println(t.getMessage());
	 */
	 StackTrace();
	 
}

public static void StackTrace(){
	Throwable t=new Throwable("脚气");
	t.printStackTrace();
}

}

package com.xuezhi.www.proj;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/*

  • 异常的处理方式:抛出处理

  • 抛出处理(throw throws)

  • 抛出异常需要注意的细节:

  • 1.如果一个方法内部抛出了一个编译时异常对象,那么必须要在这个方法上声明抛出

  • 2.如果调用了一个抛出编译时异常的方法,那么调用者必须处理异常。

  • 3.如果一个方法内部抛出了一个异常对象,那么throw语句后面的代码都不会执行。

  • 4.在一种情况下,只能抛出一种类型的异常

  • 疑问 :何时使用抛出处理?何时使用捕获处理?原则是什么?

  • 如果你需要通知调用者你的代码出了问题,这时候就需要使用抛出处理,如果你的代码是与用户(UI层)直接打交道的,

  • 遇到异常千万不能再抛出了,再抛出就抛给用户了。

  • 这时候你就需要使用捕获处理,两者相互配合才更好。

  • 编译时异常又称作受检异常
    */
    public class ThrowAndThrows {

    /**

    • @param args
      */
      public static void main(String[] args) {
      // TODO Auto-generated method stub
      Except ex=new Except();
      try{
      ex.MyIO();
      }catch(FileNotFoundException e){
      e.printStackTrace();
      }
      }

}
class Except{
public void MyIO()throws FileNotFoundException{
File file=new File(“D:\java.txt”);
try{
FileInputStream input=new FileInputStream(file);
}catch(FileNotFoundException e){
throw e;
}finally{
System.out.println(“haha”);
}
}
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值