异常:
来源:互联网 发布:现在mac如何制作铃声 编辑:程序博客网 时间:2024/05/16 11:02
异常:就是程序在运行时出现不正常情况。
划分:两种:严重问题,一种非严重问题。
对于严重的,java通过Error类来进行描述。
对于Error 一般不编写真对性的代码对其进行处理。
对于非严重问题,java通过Exception类的代码进行处理。
对于exception可以使用正对的代码进行处理。
Throwable
|-Error
|-Exception
自定义异常:
必须是 自定义类继承Exception。
继承Exception原因:
因为异常类和异常对象都被抛出。
他们都具备可抛性,这个可抛性是Throwable体系独有的特点。
只有这个体系中的类和对象才可以被throws和throw操作。
throws:使用在函数上。 后面可以跟多个异常类,用逗号隔开。
throw:使用在函数内。 后跟异常对象。
异常分两种:
1,编译时被检测的异常。
2,编译时不被检测的异常(运行时异常。RuntimeException以及其子类)
Exception中有一个特殊的子类异常:RuntimeException运行时异常。
如果在函数内容上抛出该异常,函数可以不用声明,编译一样通过。
之所以不用在函数声明,是因为不需要让调用者处理。
当该异常发生,希望程序停止。因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修改。
自定义异常时:如果异常发生,无法再继续进行运算,
就让自定义异常继承RuntimeException。
/*
*自定义异常;
*/
class ExceptionDemo
{
public int dived(int a, int b) throws FuShuException
{
if(b<0)
throw new FuShuException("被除数出现负数为:", b);
return a/b;
}
}
class FuShuException extends Exception
{
private int value;
public FuShuException() { //复写父类
super();
}
/*
* 自定义异常
*/
public FuShuException(String message,int value) //自定义异常处理信息
{
super(message);
this.value=value;
}
public int getValue()
{
return value;
}
}
public class ExceptionTest {
public static void main(String args[])
{
ExceptionDemo e=new ExceptionDemo();
try {
int x=e.dived(4, -1);
System.out.println(x);
} catch (FuShuException e2) {
// TODO: handle exception
System.out.println(e2.getMessage() );
System.out.println(e2.toString()+e2.getValue());
e2.printStackTrace();
}
}
}
-------------------------------------------------------------------
/*
*自定义异常;
*/
class FuShuException extends RuntimeException //异常出现会引发程序停止。
{
public FuShuException(String msg) {
super(msg);
}
}
class Demo
{
public int dived(int a, int b)
{
if(b<0)
throw new FuShuException("被除数出现负数");
if(b==0)
throw new ArithmeticException("被零整除");
return a/b;
}
}
public class ExecptionTest {
public static void main(String args[])
{
Demo e=new Demo();
try {
int x=e.dived(4, -1);
System.out.println(x);
} catch (FuShuException e) {
}
}
}
- 异常
- 异常!
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- Leetcode: Single Number II
- command命令模式
- JAVA List、Map、Set、数组之间转换
- REX OS之我见
- Linux学习路线图
- 异常:
- Microsoft excel中的一个小BUG
- c/c++常用算法(9) -- 基本排序算法(交换排序)
- composite 组合模式
- 第十七-周-项目二(7)比较两个字符串。(数组法)
- poj3259
- RTEMS 的文件系统初始化等的一点分析笔记
- 几张图简单解析:DW(数据仓库)的cube(多维数据集)
- Map练习