java中异常的初步认识exception

数学类–最终类、方法都是静态 random—随机小数(大于等于0.0小于1.0)

---------------------------------**--*-
关于 异常

在java中针对问题的反馈以及处理的一套机制

处理格式 try{调用方法}catch(异常名){ 处理过程}

java提供了一个关于异常的类 Throwable .class

Throwable包含的子类有--------异常(Excepation)和error

Error(错误)-----是一个合理(符合语法且代码执行逻辑没有问题)的应用程序,不应该处理;

Excepation(异常)-----是一个合理的应用程序,出现之后可以处理也可以不处理

分为两种 1、运行时异常–编译没错,运行有错—可以处理也可以不处理

运行时异常总的父类为 RunTimeExcepition

  2、编译时异常--编译有错

  编译有错---一定要处理(抛出或者捕获)

例如 ArithmetException

ArrayIndexOutOfBoundException

NullPointerException

ClassCastException

若异常类不继承RunTimeExcption则默认是编译时异常

方法上必须抛出的异常是编译时异常
过程以及原理

捕获的方式
1、抛出的所有异常需要统一处理,捕获catch块里的异常类,需要时

这些抛出异常类的公共父类

2、抛出的异常进行单独处理,在catch块需要提供对应的catch进行分别处理;

3、抛出的异常需要进行统一处理时,jdk1.7提供了统一捕获,一组之间的异

常,通过 | 进行统一处理;

重载与重写的总结

重载是一个类中,方法名一致,参数列表不一致(和修饰符、返回值、抛出的异常

都没有关系)

重写是在父子类中出现了方法签名一致的方法,重写的原则:

1、方法签名必须保持一致

2、如果父类的方法返回值类型是基本类型/void,name子类就要和父类的方法返回值

类型保持一致

3、如果父类的方法返回值是引用数据类型,子类的方法返回值也要是引用类型,这个

引用类型要么和父类的一致,要么是父类的子类。

4、子类不能抛出比父类更大(范围)的异常,特指编译时异常;

5、子类的访问权限修饰符

public class Excption {
public static void main(String[] args){

//调用方法
//方法抛出的异常,方法的调用者需要进行异常的处理
//try块–存放可能会出错的代码
//如果try块出错,就用catch块进行捕获处理
//try—catch一定会执行结束,执行下一个语句
//异常捕获报错后,后边代码继续执行
//实质是抛出异常的对象,捕获的也是异常的对象;
//可能文件类型会出错,判断文件类型
//判断是否为null

	/*try {
			String s = readTxt("C:1.java");
			
		} catch (PathNotExitsExption e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
		} catch (FileNotExitsExption e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());		
		}catch(NullPointerException e){

// 打印异常的栈轨迹
e.printStackTrace();

		}*/

//多异常 统一处理第一种方法
// 所有捕获异常的公共父类
/*
try {
String s = readTxt(“r:1.java”);

} catch (Exception e){	e.printStackTrace();	}
*/

/* (PathNotExitsExption e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
} catch (FileNotExitsExption e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}catch(NullPointerException e){
// 打印异常的栈轨迹
e.printStackTrace();

}
*/

//异常的分组从jdk1.7开始

try {
	String s = readTxt("C:1.java");

// 分组,前提是这一组的异常处理方式是一样的;
} catch (PathNotExitsExption |FileNotExitsExption |NullPointerException e) {/*
// TODO Auto-generated catch block
System.out.println(e.getMessage());
} catch (FileNotExitsExption e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}catch(NullPointerException e){
// 打印异常的栈轨迹
e.printStackTrace();
*/
}

	    System.out.println("读取文件完毕");	
}

//抛出异常时,只能抛到方法上
private static String readTxt(String path) throws PathNotExitsExption, FileNotExitsExption {
//对可能会不存在的路径进行判断
if(path.startsWith(“H”)){
//若有异常,抛出异常后后边的代码都不执行,例如 return “文件内容"就不会执行;
throw new PathNotExitsExption(“你的代码有问题”);
}
//可能文件类型会出错,判断文件类型
if(!path.endsWith(”.txt")){

throw new FileNotExitsExption("文件类型有误");

}
//判断是否为null
if(path==null){
//空指针异常为运行时异常,可以处理也可以不处理
throw new NullPointerException(“参数为null”);
}
// 开始读取文件内容
return “文件内容”;
}
}
//方法上可以抛出多个异常
//若java中没有此异常,则自定义异常类
class PathNotExitsExption extends Exception{
//属性
private String message;

public PathNotExitsExption(String Message){
	
	this.message=Message;
	
}

public String getMessage(){
	
	return message;
}

}
class FileNotExitsExption extends Exception {

public FileNotExitsExption(String message){

//调用父类有参构造,给父类属性赋值

	super(message);

	
}

}

finally 区域

这个区域表明不管有没有异常或者异常有没有被捕获,都必须执行的区域

---------------------------------------------

关于集合 interface Collection

集合是储存对象的容器;

是一个长度可变且可以储存多个数据(对象)的容器

----泛型 用于指定集合元素的数据类型,元素类型只能是引用类型

int[]arr;arr的数据类型是数组类型,arr的元素是int类型

Collectionc;c的数据类型是引用类型,c中的元素是String类型

集合想存储基本类型的数据时 Integer in= 1;

Collection是集合的顶级接口;

比较重点的子接口:List、Set、Queue、

List----序列(列表),一个有序的集合

存入数据有序,可以根据下标操作集合元素

实现类 ArraysList、LinkedList、Vector、Stack

ArraysList(有序表)

底层是由数组来实现的,默认数组的长度是10,根据底层

右移运算进行扩容,每次在原来的基础上扩容一半 10 - 15 - 22 - 33

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值