• 编译时异常和运行时异常的区别


    最简单的说法:

    javac出来的异常就是编译时异常,就是说把源代码编译成字节码(class)文件时报的异常,一般如果用Eclispe,你敲完代码保存的时候就是编译的时候。
    Java出来的异常就是运行时异常


    Java异常可分为3种:

      (1)编译时异常:Java.lang.Exception

      (2)运行期异常:Java.lang.RuntimeException

      (3)错误:Java.lang.Error

    Java.lang.Exception和Java.lang.Error继承自Java.lang.Throwable;

    Java.lang.RuntimeException继承自Java.lang.Exception.

    编译时异常: 程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。

    运行期异常: 这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。

    错误: 一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理。

    顺便说一下:编译期和运行期的区别

    	编译期和运行期进行的操作是不相同的,编译器只是进行语法的分析,分析出来的错误也只是语法上的错误,而运行期在真正在分配内存··
    比如说你写一个while循环,一直往栈里写,编译器是不会出错的,可是运行期就会出现栈满的错误··
  • 相关阅读:
    New Day
    apache mod_xsendfile 让php提供更快的文件下载
    XSS跨站测试代码大全
    HTML5 使用application cache 接口实现离线数据缓存
    HTTP 204 与 205 应用
    php HTTP请求类,支持GET,POST,Multipart/form-data
    php 过滤html标记属性类
    php 利用fsockopen GET/POST 提交表单及上传文件
    php 实现BigPipe分块输出
    同一域名对应不同IP,访问指定主机文件内容的方法
  • 原文地址:https://www.cnblogs.com/lxl57610/p/6716252.html
Copyright © 2020-2023  润新知