编译期异常
㈠ java异常处理时,为什么经常转换为运行时异常有什么好处
这个是看具体的情况,throw new runtimeexception(e)是将异常抛出了,如果是e.printStackTrace();的话只是打印出来了,没有处理,下面普及下知识:
异常分类有三类,编译时异常,运行时异常和错误
编译时异常: 程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常: 这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。
错误: 一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理。
望采纳
㈡ java中到底有没有编译时异常,我老师说编译时异常时不存在的有的只是编译错误
你可以简单的理解一下,你再编译的时候编译器都不能通过的,就比如明显的语法错误。你老师说的就是这种。一般意思就是平常说异常都是运行时异常。在编译时候报出来的大红X都是错误了的东西,这时候你eclipsse都不能运行你这个.java
㈢ 按异常在编译时是否被检测来分,异常可以分成哪两种
检查时异常(checkException)和运行时异常(runtime Exception)
㈣ Java 编译异常
错误代码:400 400错误是由于不正确的请求造成的,说明正在搜索的网页可能已经删除、更名或暂时不可用。 错误代码:401.1 401.1错误是由于登陆失败造成的,说明没有权限查看该目录或网页。 错误代码:401.2 401.2错误是由于服务器配置问题而导致登陆失败,由于服务器端脚本未能正确发送 WWW 身份验证头文件字段。如果要通过 Active Server Pages 脚本完成此项任务,可以使用"Response"对象的"AddHeader"方法来要求客户端用特定身份验证方法访问资源。 错误代码:401.3 401.3错误是由于资源上的 ACL 导致未被授权而无权访问网页或目录。 错误代码:401.4 401.4错误是由于筛选器导致授权失败。如果Web 服务器安装了筛选器程序以检查连接到服务器的用户。该筛选器程序能够禁止通过连接到服务器的身份验证来访问资源。 错误代码:401.5 401.5错误是由于 ISAPI/CGI 应用程序导致授权失败。如果所要访问的 Web 服务器地址上安装了 ISAPI 或 CGI 程序用于在继续执行之前检验用户证书。该程序能够禁止通过连接到服务器的身份验证证书来访问资源。 错误代码:403.1 403.1错误是由于"执行"访问被禁止而造成的,若试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序时便会出现此种错误。 错误代码:403.2 403.2错误是由于"读取"访问被禁止而造成的。导致此错误是由于没有可用的默认网页并且没有对目录启用目录浏览,或者要显示的 HTML 网页所驻留的目录仅标记为"可执行"或"脚本"权限。 错误代码:403.3 403.3错误是由于"写入"访问被禁止而造成的,当试图将文件上载到目录或在目录中修改文件,但该目录不允许"写"访问时就会出现此种错误。 错误代码:403.4 403.4错误是由于要求SSL而造成的,您必须在要查看的网页的地址中使用"https"。 错误代码:403.5 403.5错误是由于要求使用 128 位加密算法的 Web 浏览器而造成的,如果您的浏览器不支持128位加密算法就会出现这个错误,您可以连接微软网站进行浏览器升级。 错误代码:403.6 403.6错误是由于IP 地址被拒绝而造成的。如果服务器中有不能访问该站点的 IP 地址列表,并且您使用的 IP 地址在该列表中时您就会返回这条错误信息。 错误代码:403.7 403.7错误是因为要求客户证书,当需要访问的资源要求浏览器拥有服务器能够识别的安全套接字层 (SSL) 客户证书时会返回此种错误。 错误代码:403.8 403.8错误是由于禁止站点访问而造成的,若服务器中有不能访问该站点的 DNS 名称列表,而您使用的 DNS 名称在列表中时就会返回此种信息。请注意区别403.6与403.8错误。 错误代码:403.9 403.9错误是由于连接的用户过多而造成的,由于Web 服务器很忙,因通讯量过多而无法处理请求时便会返回这条错误。 错误代码:403.10 403.10错误是由于无效配置而导致的错误,当您试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序时便会返回这条错误。 错误代码:403.11 403.11错误是由于密码更改而导致无权查看页面。 错误代码:403.12 403.12错误是由于映射器拒绝访问而造成的。若要查看的网页要求使用有效的客户证书,而您的客户证书映射没有权限访问该 Web 站点时就会返回映射器拒绝访问的错误。 错误代码:403.13 403.13错误是由于需要查看的网页要求使用有效的客户证书而使用的客户证书已经被吊销,或者无法确定证书是否已吊销造成的。 错误代码:403.15 403.15错误是由于客户访问许可过多而造成的,当服务器超出其客户访问许可限制时会返回此条错误。 错误代码:403.16 403.16错误是由于客户证书不可信或者无效而造成的。 错误代码:403.17 403.17错误是由于客户证书已经到期或者尚未生效而造成的。 错误代码:404.1 404.1错误表明所访问 Web 站点的 IP 地址不接受对端口(请求的来源端口)的请求。一般来说,404.1 错误只会出现在具有多个 IP 地址的计算机上。如果在特定 IP 地址/端口组合上收到客户请求,而且在特定的端口上 IP 地址并没有设置为侦听,则 IIS 将返回 404.1 HTTP 错误。例如,如果一台计算机有两个 IP 地址,而只将其中一个 IP 地址配置为在端口 80 上侦听,则其它 IP 地址从端口 80 收到的任何请求都将导致 IIS 返回 404.1 错误。只应在服务级设置这一错误,因为只有当服务器上使用多个 IP 地址时它才返回给客户。 错误代码:404b 404b错误是由于无法找到文件而造成的,通常是由于正在搜索的网页可能已经删除、更名或暂时不可用。 错误代码:405 405错误是由于资源被禁止而导致的网页地址不正确,因此要寻找的网页无法显示。 错误代码:406 406错误是由于浏览器无法打开正在寻找的资源而导致的错误。 错误代码:407 407错误是由于代理服务器必须先验证身份,然后才处理请求。 错误代码:410 410错误要寻找的网页已被永久删除而导致的,这意味着资源永远无法使用。 错误代码:412 412错误是由于要查看的网页设置有先决条件,因此该请求无法完成。一般是网页中有一个或多个请求标题字段中具有先决条件,这些字段经服务器测试后被认为是"FALSE"。客户端为当前资源的 meta 信息(头文件字段数据)设置了先决条件,以便防止请求的方法被用于指定资源外的其他资源。 错误代码:414 414错误是由于请求的 URI 太长,服务器拒绝处理请求而造成的。一般的可能性有: 1)客户端错误地将 POST 请求转换为带有长查询信息的 GET 请求。 2)或者是客户端遇到重定向问题(例如,重定向 URL 的前缀指向自身的后缀)。 3)服务器遭到客户端的攻击,该客户端试图利用那些使用定长缓冲来读取或控制请求 URI 的服务器上的安全漏洞。 错误代码:500 500错误是由于内部服务器错误造成的。 错误代码:500.11 500.11错误是由于服务器关闭而造成的资源无法访问,Web 站点关闭期间无法处理请求。 错误代码:500.12 500.12错误是由于应用程序重新启动而造成的资源暂时无法访问,Web站点重新启动期间无法处理请求。 错误代码:500.13 500.13错误是由于服务器太忙而造成的,此时无法处理请求。通讯量超出 Web 站点的能力。 错误代码:500.14 500.14错误是由于应用程序无效而造成的,部分 Web 站点不可用。Web 站点应用程序配置存在问题,无法处理请求。 错误代码:500.15 500.15错误是由于请求了不不允许请求的 global.asa而造成的,你可以编辑"地址"栏中的网址,删除 global.asa,然后按 Enter。来解决这个问题。 错误代码:502 502错误是由于网关错误而造成的,当作为网关或代理的服务器与上层内容服务器联络时,收到无效的响应时就会出现502错误。 错误代码:500-100.asp 500-100.asp错误是指ASP错误,默认情况下,"默认 Web 站点"及其所有应用程序都将 ASP 错误进程传送到 500-100.asp 文件;但是,用户创建的任何新 Web 站点或其应用程序都将 500.100 错误进程传送到默认的(不是自定义的)错误文件。如果要为 .asp 文件开发附加的错误进程,可以将 500-100 错误映射到 .asp 文件,或者创建自己的错误进程 .asp 文件。 500-100.asp 文件处理 .asp 文件编译和运行期间发生的任何错误。当发生 ASP 错误时,IIS 返回 500-100.asp 文件并附带详细的错误信息,如发生错误的行号和对错误的描述。 如果文件 500-100.asp 本身包含 ASP 错误,ASP 就不会返回另一个 500-100.asp 文件;这样,报告错误时就好象根本没有与 500-100 错误对应的自定义错误文件似的。 如果错误处理文件(默认是 500-100.asp)包含运行时错误,则只显示此错误,而不考虑请求的 .asp 文件中的错误类型。如果错误处理文件有预处理和编辑错误,则在浏览器中显示这两种错误(即,显示 500-100.asp 文件中的错误和请求的 .asp 文件中的错误)。 4.3. 枚举声明 java.lang.Thread.State 线程有以下几种状态:NEW(已创建但尚未开始执行)、RUNNABLE(正在Java虚拟机中执行)、BLOCKED(阻塞中:正等待获得监控锁)、WAITING(等待:无条件等候其他线程执行完毕,直到接收到唤醒通知)、TIMED_WAITING(限时等待:等候其他线程执行完毕,直到接收到唤醒通知或等待时间超过了时限)、TERMINATED(终止:线程已经退出)。4.4. 异常 java.lang.ArithmeticException 算术条件异常。譬如:整数除零等。 java.lang. 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。 java.lang.ArrayStoreException 数组存储异常。当向数组中存放非数组声明类型对象时抛出。 java.lang.ClassCastException 类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。 java.lang.ClassNotFoundException 找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。 java.lang.CloneNotSupportedException 不支持克隆异常。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。 java.lang. 枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常。 java.lang.Exception 根异常。用以描述应用程序希望捕获的情况。 java.lang.IllegalAccessException 违法的访问异常。当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。 java.lang.IllegalMonitorStateException 违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。 java.lang.IllegalStateException 违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。 java.lang.IllegalThreadStateException 违法的线程状态异常。当县城尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常。 java.lang.IndexOutOfBoundsException 索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。 java.lang.InstantiationException 实例化异常。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。 java.lang.InterruptedException 被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。 java.lang.NegativeArraySizeException 数组大小为负值异常。当使用负数大小值创建数组时抛出该异常。 java.lang.NoSuchFieldException 属性不存在异常。当访问某个类的不存在的属性时抛出该异常。 java.lang.NoSuchMethodException 方法不存在异常。当访问某个类的不存在的方法时抛出该异常。 java.lang.NullPointerException 空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。 java.lang.NumberFormatException 数字格式异常。当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。 java.lang.RuntimeException 运行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类。 java.lang.SecurityException 安全异常。由安全管理器抛出,用于指示违反安全情况的异常。 java.lang. 字符串索引越界异常。当使用索引值访问某个字符串中的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。 java.lang.TypeNotPresentException 类型不存在异常。当应用试图以某个类型名称的字符串表达方式访问该类型,但是根据给定的名称又找不到该类型是抛出该异常。该异常与ClassNotFoundException的区别在于该异常是unchecked(不被检查)异常,而ClassNotFoundException是checked(被检查)异常。 java.lang.UnsupportedOperationException 不支持的方法异常。指明请求的方法不被支持情况的异常。
㈤ 为什么java编译时异常需要try-catch处理,改掉不好吗
异常有很多种类,爆红属于一种
代码有一个规范,自己写的代码
过两天去看,有时候就看不明白了
项目上线也是一样,没有人敢保证
自己的代码没有bug,所以报错机制
提供了一个查阅的平台,方便知道
哪里出错了,如何去修改
代码写出来只是第一步,后期维护
工作也是必要的
㈥ java文件编译的时候 报出异常,求解释。
一个java文件中可以共存多个class类,但只能有一个 public class 类名 ,而这个类名必须和这个Java文件的文件名称一样。你上述的就是因为Java文件和其中的public class 类名不匹配导致的
㈦ java什么时候是编译出错,什么时候会报异常呢
编译错时因为你写的语法不正确,报异常有时候是程序自身的错误 大部分是你程序逻辑有错误
㈧ 为啥jdk IO 要抛出编译期异常
这是你们设计的问题
人家是指明了说你必须要明确的处理这些异常,至于怎么处理是没有规定的
你可以catch 起来,也可以继续申明抛出
㈨ 编译错误和运行时异常怎么区分
编译错误 一般都是语法错误
运行时错误一般都是比如数组索引指向空值 4/0 这类错误
请参考