异常:

来源:互联网 发布:现在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) {
   
  }
 }
}

0 0
原创粉丝点击