当前位置: 首页 > news >正文

预约营销型网站建设专家张家口seo

预约营销型网站建设专家,张家口seo,wordpress主题英文改中文,wordpress后台慢异常概念异常发生的原因用户输入非法数据要打开的文件不存在网络中断/JVM内存溢出(JVM是JRE的一部分。它是一个虚构出来的计算机)除0、非法参数等三种类型的异常,用以理解异常检查性异常【otherException】:程序员无法预见的&…

异常概念

  1. 异常发生的原因

  1. 用户输入非法数据

  1. 要打开的文件不存在

  1. 网络中断/JVM内存溢出(JVM是JRE的一部分。它是一个虚构出来的计算机)

  1. 除0、非法参数等

  1. 三种类型的异常,用以理解异常

  1. 检查性异常【otherException】:程序员无法预见的,如文件不存在等,编译时报错

  1. 运行时异常【RuntimeException】:程序员可以避免,编译可忽略

  1. 错误【Error】:程序员脱离控制,如栈溢出

  1. JAVA的处理

  1. Java有异常处理框架,所有异常用一个异常类表示,不同类型的异常对应不同子类

  1. JDK1.4后,异常链机制,可跟踪异常

异常体系结构

异常之间的区别和联系

  1. Error

与编码者所执行的操作无关,也不应该试图去处理。如虚拟机运行错误Virtual MachineError,内存不够OutOfMemoryError,类定义错误NoClassDefFoundErro,链接错误LinkageError等。

===> 灾难性,Java一般会终止线程

  1. Exception

  • 运行时异常:数组下标越界ArrayIndexOutOfBoundsException、空指针NullPoint/丢失资源MissingResource等,由程序逻辑错误引起,属不检查异常,可不处理。

  • 非运行时异常:必须处理,IOException, SQLException,用户自定义的Exception等。属于检查异常。

===>可以处理,应尽可能去处理

  1. 检查异常和不受检查异常【都是Exception】

  • 不检查异常:运行时异常里的

  • 检查异常:除了运行时异常,都是检查异常,是必须处理的。处理方法:try-catch或者throws

Java异常处理机制

  1. 抛出异常

异常情形:当前方法或作用域无法继续执行了

抛出异常:异常情形下,从当前环境跳出,把问题交给上一级环境。

抛出异常后,在堆上new一个异常对象,当前执行路径被终止且弹出对异常对象的引用。异常处理机制接管程序,从异常处理程序开始执行程序。异常处理机制将程序回复/换种方式/继续运行下去。

  1. 捕获异常

方法抛出异常后,系统寻找合适的异常处理器。

潜在的异常处理器,是异常发生时,存留在调用栈的方法的集合。

若未找到,Java程序结束。

  1. 异常处理五个关键字

  1. try 监听: try语句块发生异常,则异常抛出

  1. catch 捕获

  1. finally 回收try打开的物力资源(数据库连接、网络连接、磁盘文件)如果finally里使用了return/throw等,则不会再执行try/catch中的return/throw

  1. throw 抛出异常

  1. throws 声明该方法会抛出异常

处理异常

  1. try-catch

  • 例子

写了try-catch,程序可以正常运行了,不然编译不通过

    public static void main(String[] args) {int a =1;int b = 0;try {if(b == 0) throw new ArithmeticException(); // 抛出算术异常System.out.println("a / b = " + a/b);}catch (ArithmeticException e){System.out.println("捕获到了异常!" + e);}System.out.println("程序结束");}

这个算术异常是运行时异常,系统会自动抛出的。比如不写这个try-catch,就会:

  • 多重catch

将捕获底层异常类的catch子句放在前面,较高层的放在后面

  • 嵌套try

没进入一个try,异常的前后关系会被推入堆栈。如果内部不含异常,堆栈弹出,检查下一个try。

  1. throw

异常由两个构造方法,一个有参数的,一个没有参数的。可以把参数传进去,通过e.getMessage()来获取这个异常参数。

    public static void main(String[] args) {try {proc();}catch (NullPointerException e){System.out.println("main中的catch" + e);}}static void proc(){try{// throw 明确异常throw new NullPointerException("demo");}catch(NullPointerException e){// 如果用 e.getMessage() , 则可以返回“demo”这个词System.out.println("proc中的catch" + e);throw e;    // 把异常抛出方法外}}
  1. throws

在方法声明中包含throws子句,就可以不用在方法中处理了。但调用该方法的main()需要写try-catch来处理。

    public static void main(String[] args) {try {proc();} catch (IllegalAccessException e) {// 如果这样throw出去,console中会由红字异常报出//throw new RuntimeException(e);    System.out.println("main中捕获咯");}}static void proc() throws IllegalAccessException{System.out.println("Proc()中的代码");throw new IllegalAccessException("demo");   // 是new这个异常哦}

注意点:

  • Error和RuntimeException, 可以不抛出,编译通过,运行是会被系统抛出

  • 如果是可查异常,必须在方法里写throws,然后用try-catch捕获/throws抛出

  • 抛出异常,方法调用者必须处理,或继续抛出

  • 调用方法必须遵循可查异常的处理和声明规则。覆盖一个方法时,不能声明与覆盖方法不同的异常。

  1. finally

在try/catch完成后,另一个try/catch之前执行。无论有无异常都会执行。可用来释放占用的资源,一定要释放哦!

    static void proc(){System.out.println("Proc()中的代码");int a = 2;try{if(a == 3){throw new IllegalAccessException("demo");   // 是new这个异常哦}}catch(IllegalAccessException e) {System.out.println(e.getMessage());}finally {System.out.println("finally!!! 我执行了!");}}
  • 执行顺序

  1. try, catch, 给返回值赋值

  1. finally

  1. return

自定义异常

  • 继承Exception类即可,创建自定义异常

  • 方法中抛出: try-catch捕获处理或者在方法声明里throws、调用者中捕获并处理

http://www.sczhlp.com/news/111737/

相关文章:

  • 云企网站建设开发织梦确定网站风格
  • 杭州做网站哪家好旅游网站系统设计与开发
  • 东莞官方网站建设做网站还是订阅号
  • 宿迁环保局网站建设局德州网站建设哪一家好
  • 做网站的费用会计分录微信公众号链接的网站怎么做的
  • 网站建设步骤大全厦门 外贸商城网站建设
  • 网站开发交互原型标注图做男性服装的网站
  • .netcms网站管理系统常州做集装箱的公司
  • 深圳住房宝安和建设局网站用dreamwever做网站
  • 广州网站推广教程二级网站怎样被百度收录
  • 自有服务器 建网站惠州东莞网站建设价格
  • 怎样修改网站关键词哈尔滨建设工程批前公示
  • 域名到期网站360提示危险网站原因
  • 镇江网站建设工作室网站关键词搜索
  • 做网站教程免费外链网盘系统
  • 网站备案相机小制作简单又漂亮
  • 网站排名 各因素怎么建设一个购物网站
  • 电子商务网站建设期末考试网站设计广州
  • 做淘客网站用什么服务器好淮北论坛招聘兼职
  • 做文案公众号策划兼职网站电商平台推广员是做什么的
  • 沈阳网站建设方案模板最新网站源码
  • 天津高端网站建设制作贸易公司名称大全简单大气
  • 介绍化工项目建设和招聘的网站网站建设时间计划书
  • 网站建设 服务质量保证互联网网站文化
  • 江苏交通建设监理协会网站网站描述怎么写好
  • 保定网站建设电话网站开发面向对象
  • 网站域名要多少钱适响应式网站弊端
  • 自己做网站好还是让别人做宜春个人网站建设
  • 网站架构师工资官网的网站设计公司
  • 3.常见的网站建设工具有如何建立公司网站