黑马程序员-学习日记_JAVA中异常
来源:互联网 发布:mac leehi 编辑:程序博客网 时间:2024/06/05 07:51
黑马程序员-学习日记
黑马程序员_JAVA中的异常
------- android培训、java培训、期待与您交流! ----------
一:异常:程序出现的不正常的情况就是异常。
在java中异常结构体系的超类基类是Throwable;
二:Trowable:
Error:指的是严重的问题,严重到影响程序的执行。这个问题,不做异常处理。
因为一般出现的问题,处理不了。比如说:内存溢出。必须通过修改程序来解决。
Exception:一般的程序问题,必须通过异常处理的。
三:main方法如何处理异常:
1:main里面如果没有处理异常,那么jvm会采用默认处理方式。
2:自己写代码处理
A:try...catch...finally 捕获处理异常。
基本格式:
try
{
可能出现异常的代码;
}
catch(异常对象)
{
异常的处理方式;
}
finally
{
释放资源;
}
变形方式:
try...catch
try...catch...catch...
try...catch...catch...fianlly
try...finally 没有对异常进行处理
注意:在try对应多个catch时,catch中的异常的书写顺序:如果异常为平级的顺序可以打乱;如果异常存在着子父类关系,则异常书写顺序是将最子类的异常写在方法中的最上边。
B:throws 抛出异常
C:Throwable中的三个方法:
String getMessage():获取异常的信息
void printStackTrace():获取异常的堆栈信息
String toString():或者异常字符串的描述,其实是覆盖了Object中的同toString方法;
四:自定义异常:在方法中用throw关键字类抛出
自定义的异常要继承Exception或者RuntimeException;
代码体现:
class MyException extends Exception或者RuntimeException
{
private String message;
MyException(){}
MyException(String message){
super(message);
}
MyException(String message,int num){
super(message);
this.num = num;
}
public int getNum(){
return num;
}
}
五:RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。也就是说在自定义异常的时候如果继承的是Exception体系,在自定义方法上必须声明自定义异常。
六:throw和throws的区别:
A:有throws的时候可以没有throw;但如果 throw抛得异常是Exception体系除RuntimeException外的,必须用throws在方法上声明。
B:throws 后边声明的是异常类名;throw后边声明的是自定义异常对象名;
七:Exception和RuntimeException的区别
A:Exception:一般性的错误,是需要我们编写代码进行处理的。
B:RuntimeException:运行时异常,这个我们也不需要处理。
其实就是为了让他在运行时出问题,然后我们回来修改代码。
在用throws抛出一个的时候,如果这个异常是属于RuntimeException的体系的时候,我们在调用的地方可以不用处理。(RuntimeException和RuntimeException的子类)在用throws抛出一个的时候,如果这个异常是属于Exception的体系的时候,我们在调用的地方必须进行处理或者继续抛出。
八:finally代码块:
finally永远被执行,除非退出JVM时,也就是先了执行System.exit(0);
九:finally,final,finalize的区别?
final是一个修饰符,可以修饰类(修饰类后类变成最终类不可以被继承),变量(修饰后成为一个常量),和方法(被修饰后的方法不可以被复写);
finally是异常处理里面的关键字,他其中的代码块永远被执行,除非先执行了System.exit(0);
finalize是Object里的一个方法,他是垃圾回收器调用的方式。
假如catch中有return语句, finally里中的代码会在return前执行。
十:可以同时抛出多个自定义的异常;在自定义异常时建议继承RuntimeException。
------- android培训、java培训、期待与您交流! ---------- 详细请查看:http://edu.csdn.net/heima/
- 黑马程序员-学习日记_JAVA中异常
- 黑马程序员_JAVA学习日记_JAVA中网络编程
- 黑马程序员_java学习日记_IO流
- 黑马程序员_java学习日记_数组
- 黑马程序员_java学习日记_集合
- 黑马程序员_Java学习日记15_File
- 黑马程序员_Java学习日记18_GUI
- 黑马程序员_java学习日记01
- 黑马程序员_java学习日记02
- 黑马程序员_java基础学习日记
- 黑马程序员_Java学习日记(2)
- 黑马程序员_Java学习日记 num1
- 黑马程序员_Java学习日记num2
- 黑马程序员_Java学习日记num3
- 黑马程序员_Java学习日记num4
- 黑马程序员_Java学习日记num6
- 黑马程序员_Java学习日记num7
- 黑马程序员_Java学习日记num8
- #pragma data_seg共享数据使用说明
- 简单的文件下载
- 弱谈网络盛传的文库下载器
- 深入浅析软件需求的定义
- 黑马程序员_Java基础_多线程1
- 黑马程序员-学习日记_JAVA中异常
- 在java中调用shell
- jquery 鼠标停留显示提示框,提示框位置跟随鼠标移动
- 第03章 面向对象 34 Object类之toString方法
- word学习笔记
- StreamUtil流处理
- MediaMetadataRetriever类取得媒体文件信息
- Linux上iptables防火墙的基本应用教程
- Android 获取View在屏幕中的位置