java为什么存在编译期异常(Java之运行时异常与编译时异常区别)
大家好,今天小编来为大家解答以下的问题,关于java为什么存在编译期异常,Java之运行时异常与编译时异常区别这个很多人还不知道,现在让我们一起来看看吧!
Java Web 编译的异常问题
org.apache.catalina.core.standardhostdeployer安装
信息:加工语境配置文件的url文件中: f:\雅加达-雄猫- 5.0.19\ conf设置\ catalina女士\ localhost\ webmodule1.xml
2007年11月9日15时15分37秒org.apache.catalina.core.standardcontext resourcesstart
严重:错误的出发静态资源
java.lang.illegalargumentexception:文件中的c:\文件和设置\管理员\桌面\ untitled2\ webmodule1不存在,或者是不是一个可读目录
在org.apache.naming.resources.filedircontext.setdocbase( filedircontext.java: 185)
在org.apache.catalina.core.standardcontext.resourcesstart( standardcontext.java: 3856)
在org.apache.catalina.core.standardcontext.start( standardcontext.java: 4084)
在org.apache.catalina.core.containerbase.addchildinternal( containerbase.java: 866)
在org.apache.catalina.core.containerbase.addchild( containerbase.java: 850)
在org.apache.catalina.core.standardhost.addchild( standardhost.java: 638)
在org.apache.catalina.core.standardhostdeployer.addchild( standardhostdeployer.java: 839)
在sun.reflect.nativemethodaccessorimpl.invoke0(原法)
在sun.reflect.nativemethodaccessorimpl.invoke( nativemethodaccessorimpl.java: 39)
在sun.reflect.delegatingmethodaccessorimpl.invoke( delegatingmethodaccessorimpl.java: 25)
在java.lang.reflect.method.invoke( method.java: 585)
在org.apache.commons.beanutils.methodutils.invokemethod( methodutils.java: 252)
在org.apache.commons.digester.setnextrule.end( setnextrule.java: 256)
在org.apache.commons.digester.rule.end( rule.java: 276)
在org.apache.commons.digester.digester.endelement( digester.java: 1058)
在org.apache.catalina.util.catalinadigester.endelement( catalinadigester.java: 123)
在org.apache.xerces.parsers.abstractsaxparser.endelement(未知源)
在org.apache.xerces.impl.xmldocumentfragmentscannerimpl.scanendelement(未知源)
在org.apache.xerces.impl.xmldocumentfragmentscannerimpl元fragmentcontentdispatcher.dispatch(未知源)
问题补充:严重:误差在resourcestart()
2007年11月9日15时15分37秒org.apache.catalina.core.standardcontext开始
严重:错误getconfigured
2007年11月9日15时15分37秒org.apache.catalina.core.standardcontext开始
严重:背景下启动,但未成功,因为先前的错误
2007年11月9日15时15分37秒org.apache.catalina.core.standardcontext开始
严重:除在清理过程后,开始失败
lifecycleexception:集装箱standardcontext [/ webmodule1 ]尚未开始
在org.apache.catalina.core.standardcontext.stop( standardcontext.java: 4400)
在org.apache.catalina.core.standardcontext.start( standardcontext.java: 4298)
在org.apache.catalina.core.containerbase.addchildinternal( containerbase.java: 866)
在org.apache.catalina.core.containerbase.addchild( containerbase.java: 850)
在org.apache.catalina.core.standardhost.addchild( standardhost.java: 638)
在org.apache.catalina.core.standardhostdeployer.addchild
( standardhostdeployer.java: 839)
可以看出你的文件没有存在或文件的路径不能出现中文~!!!
Java之运行时异常与编译时异常区别
Java中用2种方法处理异常:
1.在发生异常的地方直接处理;
2.将异常抛给调用者,让调用者处理。
Java常见的异常:
(1)编译时异常:Java.lang.Exception
(2)运行期异常:Java.lang.RuntimeException
Java.lang.Exception和Java.lang.Error继承自Java.lang.Throwable;
Java.lang.RuntimeException继承自Java.lang.Exception.
编译时异常:程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常:这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。
java编译异常有哪几个
编译异常是Exception下除了RuntimeException及其子类以外的所有子类
Java提供了两类主要的异常:RuntimeException和CheckedException.
checked异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。
runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
不管是不是RuntimeException只要有异常而且你还没try/ catch那他一定会中断执行非RuntimeException在编译的时候编译器会帮你检查有没有正确、完整的try/ catch如果没有编译不过 RuntimeException在编译的时候不检查
参考自:http://m.blog.csdn.net/blog/zhou1216141078/12921609
java异常处理时,为什么经常转换为运行时异常有什么好处
这个是看具体的情况,throw new runtimeexception(e)是将异常抛出了,如果是e.printStackTrace();的话只是打印出来了,没有处理,下面普及下知识:
异常分类有三类,编译时异常,运行时异常和错误
编译时异常:程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常:这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。
错误:一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理。
望采纳
OK,本文到此结束,希望对大家有所帮助。