ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第 20 节课 集合收尾,异常

2021-11-26 21:03:25  阅读:169  来源: 互联网

标签:20 处理 try finally 类名 catch 节课 异常 收尾


目录

TreeMap :底层是基于红黑树的Map接口的实现类

HashMap和Hashtable的区别

异常:Java程序出现的错误,程序出现了不正常的情况

异常处理的格式

final,finally,finalize的区别

File类的构造方法:

注意事项:

注意事项:

注意:

异常中需要掌握的方法:

格式:

throw和throws的区别:


TreeMap :底层是基于红黑树的Map接口的实现类

HashMap和Hashtable的区别

1、相同点:它们存储的元素类型都是K-V格式的

2、不同点:

1、Hashtable是线程安全的HashMap不是线程安全的

2、Hashtable的Key的值和value的值都不允许为null,而HashMap

异常:Java程序出现的错误,程序出现了不正常的情况

Java中的异常:Throwable

严重的问题:Error,一般情况下,我们不处理,这样的问题一般都是很严重的,比如OOM,内存溢出问题

问题:异常:Excption

运行时异常:RuntimeException,这样的问题我们不处理,因为这种问题一般都是你自己写代码出现的问题,比如代码不够严谨

编译时异常:除了不是RuntimeException都是编译时异常,必须要进行处理,如果你不处理,程序编译就不通过,无法运行。

如果程序出现了问题,我们没有做任何处理,最终JVM会给出一个默认的处理

把异常的名称,相关的原因,以及出现的问题的相关信息,包括位置输出在控制台,同时程序会结束,后面的代码不会运行

异常处理的格式

1、try...catch...finally

2、throws

try...catch...finally的处理格式:

try{

可能会出现问题的代码;

}catch(异常的类名 变量名){

针对问题的一些处理;

}finally{

释放资源的代码;

}

finally:在try...catch处理异常的时候,末尾通常会加一个finally,被它控制的语句体,一定会执行,一般情况下,里面放的是释放资源的代码

将来try...catch...finally用的最多的地方是连接数据库,finally,放的是释放连接资源的东西,IO的操作这里用的也是比较多的

final,finally,finalize的区别

final:最终的意思,可以修饰类,成员变量,成员方法

修饰类:类不能被继承

修饰成员变量:变量就是常量

修饰成员方法:方法不能被重写

finally:是处理异常的一部分,一般情况下用于释放资源的作用,一般来说都会执行,特殊情况下:在执行finally之前JVM就停了(System.exit(0))

finalize:是Object类中的一个方法,用于手动回收垃圾,但是不一定立即回收

JAVA中有一个类来供我们使用,抽象的表示硬盘上的各种文件,这个类叫做File

File:文件和目录(文件夹)路径名的抽象表现形式

File类的构造方法:

public File(String pathname)

public File(String parent,String child) 根据一个目录和一个子文件(目录)得到一个File对象

public File(File parent,String child) 根据一个父的File对象和一个子文件(目录)得到一个File对象

创建功能:

public boolean createNewFile() 创建一个新的文件,如果已经存在就不创建,不会报错,目录不存在报错

public boolean mkdir() 创建一个文件夹,已经存在不创建,返回false

public boolean mkdirs() 创建一个多级文件夹

public boolean delete() 删除文件夹前,要保证文件夹空

变形格式:

try{

可能会出现问题的代码;

}catch(异常的类名 变量名){

针对问题的一些处理;

}

注意事项:

1、try里面的代码尽量不要太多

2、catch里面必须要有内容,哪怕只是有一句简单提示语句

1、处理一个异常的情况

2、处理多个异常的情况

1、每个异常都写一个try...catch

2、写一个try,多个catch

try{

可能会出现问题的代码;

}catch(异常的类名 变量名){

针对问题的处理;

}catch(异常的类名 变量名){

针对问题的处理;

}...

注意事项:

1、能明确异常的类型的时候尽量明确,不要用父类大的作处理

2、平级的关系,多个catch异常没有前后顺序关系,谁在前谁在后无所谓,一旦出现了父类继承的关系,父必须在后

3、一旦try里面的代码出现了问题,就会去匹配catch里面的异常,继续执行程序后面的代码,但是try里面的代码就停在了出现问题的那一步。

JDK的新特性及注意事项

新特性处理多个异常

try{

可能会出现问题的代码;

}catch(异常类名1|异常类名|... 变量名){

处理异常的提示;

}

注意:

1、处理方式是一致的,这个方法虽然比较简洁,但是不够好,针对多种类型的问题,只给出了一种解决方案。

2、多个异常的类型之间必须是平级关系

编译时期异常与运行时期异常的区别

1、编译时期异常:JAVA程序必须显示处理,否则程序就会发生错误,无法通过编译

2、运行时期异常:无需显示处理,也可以和编译时异常一样处理

异常中需要掌握的方法:

getMessage()

获取异常信息,返回字符串

toString()

获取异常类名和异常信息,返回字符串。

返回此可抛出的简短描述。结果是:

这个对象的类name+“:”(一个冒号和一个空格)+调用这个对象的getLocalizedMessage()方法的结果

对于不重写此方法的子类,默认现实返回相同的结果为getMessage()

printStackTrace():获取异常类名和异常信息,以及异常出现在程序中的位置,返回值void

我们不做处理的时候,一旦发生异常,后面的代码就不会运行,我们做了异常处理,后面的代码正常运行

我们没有权限去处理的异常,或者处理不了的异常,干脆不处理

JAVA针对这种情况,提供了throws抛出

格式:

throws异常类名

注意:这个格式必须跟在方法的小括号后面,大括号前面

注意:

1、编译时期异常抛出,方法内可以不做处理,但是将来调用者调用该方法的时候必须处理

2、运行时期异常抛出,将来调用者可以不做任何处理,但是一旦调用出错,后面的代码程序不会执行

3、最好抛出的是详细的异常类型,也是推荐的做法,可以抛出大的异常类型,但是处理的时候要对应上。

4、尽量不要在main方法上抛出,如果在main方法上抛出,程序会停止,后面的代码不会执行

throw:

在功能方法内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。

throw和throws的区别:

throws:用在方法声明的后面,跟的是异常的类名。

可以跟多个异常类名,用逗号隔开

表示的是抛出异常,由该方法的调用者处理

throws表示的是出现异常的一种可能性,为了程序的正常运行,我们选择抛出给调用者处理,不一定会发生这种异常

throw:用在方法内,跟着的是异常的对象。

只能抛出一个异常对象。

表示的时候抛出异常,由方法体内的语句做处理。

throw表示的是一定出现了某种异常

标签:20,处理,try,finally,类名,catch,节课,异常,收尾
来源: https://blog.csdn.net/m0_47120517/article/details/121547811

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有