黑马程序员--异常
来源:互联网 发布:淘宝店铺app开发 编辑:程序博客网 时间:2024/05/22 00:53
------- android培训、java培训、期待与您交流! ----------
public class ClassExceptionDemo { public static void main(String[] args) { Demo d = new Demo(); int result = d.div(5, 0); /* * Exception in thread "main" : java.lang.ArithmeticException/ by zero * at Demo.div(ClassExceptionDemo.java:18) * at ClassExceptionDemo.main(ClassExceptionDemo.java:5) */ System.out.println(result); System.out.println("over"); } } class Demo{ public int div(int x, int y) { return x / y; } }
2、Error
是 Throwable
的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath
错误是一个“正规”的条件,但它也是 Error
的子类,因为大多数应用程序都不应该试图捕获它。在执行该方法期间,无需在其 throws
子句中声明可能抛出但是未能捕获的 Error
的任何子类,因为这些错误可能是再也不会发生的异常条件。 Exception
类及其子类是 Throwable
的一种形式,它指出了合理的应用程序想要捕获的条件。try{需要被检测的代码;}catch(异常类 变量){处理异常的代码;(处理方式)}finally{一定会执行的语句;}
并且注意:1. try{} catch (){} 2. try{} finally{} 3. try{} catch (){} finally{}
String
getMessage()
返回此 throwable 的详细消息字符串。
String
toString()
返回此 throwable 的简短描述。
void
printStackTrace()
将此 throwable 及其追踪输出至标准错误流。
class Demo { public int div(int a,int b) { return a/b; } } class ExceptionDemo { public static void main(String[] args) { Demo d = new Demo(); try { int x = d.div(4,1); System.out.println("x="+x); } catch (Exception e)//Exception e = new ArithmeticException(); { System.out.println("除零啦"); System.out.println(e.getMessage());// / by zero; System.out.println(e.toString());// 异常名称 : 异常信息。 e.printStackTrace();//异常名称,异常信息,异常出现的位置。 //其实jvm默认的异常处理机制,就是在调用printStackTrace方法。 //打印异常在堆栈的跟踪信息。 } System.out.println("over"); } }
public int div(int a,int b)throws Exception//在功能上通过throws的关键字声明了该功能有可能会出现问题。
便于提高安全性,让调用者进行try catch处理(也可以继续向上抛,若一直这样,最终会抛给虚拟机)。不处理编译失败。(将异常从运行时发现到编译时就能发现,提高程序的安全性)
class MyException extends Exception{MyException(String message){super(message);}}
public class ClassExceptionDemo { public static void main(String[] args) { Demo d = new Demo(); int result; try { result = d.div(5, 0); System.out.println(result); } catch (ArithmeticException e) { System.out.println(e.toString()); } catch (FuShuException e) { System.out.println(e.toString()); } System.out.println("over"); } } class Demo{ public int div(int x, int y) throws ArithmeticException,FuShuException { if(y<0) throw new FuShuException("除数小于0了"); return x / y; } } class FuShuException extends Exception{//自定义的异常类 FuShuException(String msg){ super(msg); } }
- throws使用在函数上,throw使用在函数内。
- throws后面跟的异常类,可以跟多个,用逗号隔开,throw后跟的是异常对象。
- 当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。
try { throw new AException(); } catch (AException e) { throw e; }
- 如果该异常处理不了,但并不属于该功能出现的异常。可以将异常转换后,再抛出和该功能相关的异常。(并 且异常链不能断)
- 或者异常可以处理,当需要将异常产生后和本功能相关的问题提供出去,让调用者知道,并处理。也可以将捕 获异常处理后,转换新的异常。
五、覆盖时异常的特点:try{throw new AException();}catch (AException e){// 对AException处理。throw new BException(e);//并且异常链不能断}
class AException extends Exception{}class BException extends AException{}class CException extends Exception{}class Fu{ void show()throws AException{ } } class Zi extends Fu{ void show()throws AException{//该类继承了Fu这个类,并覆盖了show()方法,在根据自定义的异常体系,该方法只能 //抛出,AException、AException和BException、BException、或不抛出异常。若有其他 //异常出现,只能try处理不能抛出。 } }
- 黑马程序员---异常?异常!
- 黑马程序员---异常处理异常
- 黑马程序员-程序异常
- 黑马程序员:异常问题
- 黑马程序员_异常
- 黑马程序员_异常
- 黑马程序员 异常
- 黑马程序员_异常
- 黑马程序员_异常
- 黑马程序员---异常处理
- 黑马程序员二、异常
- 黑马程序员_异常
- 黑马程序员_异常
- 黑马程序员_异常
- 29.黑马程序员-异常
- 黑马程序员-异常类
- 黑马程序员_异常
- 黑马程序员_异常
- <include />&<merge />
- 为Junit虚拟Jsp Container的数据库连接池
- 傅老师课堂:Oracle高级查询之GROUP BY
- MD5 java 学习笔记01
- 差异化比较数据结构
- 黑马程序员--异常
- 传智播客C/C++学员应邀参加微软MVP社区大课堂
- nginx简单双机热备:backup参数的使用
- 求最小生成树,普里姆(Prim)算法
- c++ 基本操作 考点总结(三)
- POSIX简介
- windows查看指定端口进程以及杀死命令
- struct device结构体(2.6.23)
- 第一次写博客