欢迎来到天天文库
浏览记录
ID:31191964
大小:71.50 KB
页数:4页
时间:2019-01-07
《java异常的面试问题及答案-part1-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java异常的Ifli试问题及答案-Part1-JavaJT'发Java经验技巧Java异常的面试问题及答案-Part1木文由ImportNew・韩远青翻译自Journaldevo欢迎加入翻译小组。转载请见文末要求。Java提供了一个健壮的、面向对象的方法來处理出现异常,称为J"眩异常处理。我以前写过一篇长文章来介绍Java异常处理,今天我将列出一些重要的Java异常而试的问题及答案,希望对你们的而试冇所帮助。1・什么是Java异常答:异常是发生在程序执行过程中阻碍程序正常执行的错误事件。比如:用户输入错误数据、硬件故障、网络阻塞
2、等都会导致出现异常。只耍在Ja眩语句执行屮产生了异常,一个异常对彖就会被创建,JRE就会试图寻找异常处理程序来处理异常。如果有合适的杲常处理程序,杲常对象就会被界常处理程序接管,否则,将引发运行环境异常,JRE终止程序执行。Java异常处理框架只能处理运行吋错误,编译错误不在其考虑范围之内。2.Java异常处理中有哪些关键字?答:•thrown冇时我们需要显式地创建并抛出异常对象來终止程序的正常执throw关键字用来抛出并处理运行时异常。•throws'.当我们抛出任何“被检查的界常(checkedexception)^并不处理吋
3、,需要在方法签名中使用关键字throws来告知调用程序此方法可能会抛出的界常。调用方法可能会处理这些异常,或者同样用throws来将异常传给上一级调用方法。throws关键字后可接多个潜在异常,其至是在main()ll也可以使用throwso•try-catch我们在代码中用try-catch块处理界常。当然,一个心块Z后可以有多个catch了旬,try-catch块也能嵌套。每个catch块必须接受一个(且仅冇一个)代表异常类型的参数。•finally.finaWy块是可选的,并且只能配合try-catch—起使用。虽然异常终
4、止了程序的执行,但是还有一些打开的资源没有被关闭,因此,我们能使JUfinally进行关闭。不管界常有没有出现‘finally块总会被执行。3.描述一下异常的层级。答:Java异常是层级的,并通过继承來区分不同种类的异常。•Throwablc是所冇异常的父类,它冇两个直接了对象Error,Exception,中Exception又被继续划分为“被检杳的异常(checkedexception)”和”运行时的异常(runtimeexception,UP不受检查的界常)”。Error表示编译时和系统错误,通常不能预期和恢复,比如硕件故障
5、、JVM崩溃、内存不足等。•被检杏的异常(Checkedexception)在程序屮能预期,并要尝试修复,如FileNotFoundExceptiono我们必须捕获此类异常,并为用八提供有用信息和合适R志来进行调试。Exception是所有被检查的界常的父类。•运行时界常(RuntimeException)乂称为不受检查界常,源于糟糕的编程。比如我们检索数组元素Z前必须确认数组的长度,否则就可能会抛出ArraylndexOutOfBoundException运行时异常。RuntimeException是所有运行时异常的父类。2.J
6、ava异常类有哪些的重要方法?答:Exception和它的所有子类没有提供任何特殊方法供使用,它们的所有方法都是来自其基类Throwableo•StringgetMessage():A法返回Throwable的String型信息,当异常通过构造器创建后可用。•StringgctLocalizcdMcssagc():此方法通过被重写来得到用木地语言表示的异常信息返卜1给调用程序。Throwable类通常只是用getMessage()方法来实现返回异常信息。•synchronizedThrowablegetCause():此方法返回界
7、常产生的原因,如果不知道原因的话返回null。(原文有拼写错误应该是if不是id)•StringtoString():方法返冋String格式的Throwable信息,此信息包括Throwable的名字和本地化信息。•voidprintStackTracc():该方法打印栈轨迹信息到标准错误流。该方法能接受PrintStream和PrintWriter作为参数实现重载,这样就能实现打印栈轨迹到文件或流中。5•描述Java7ARM(AutomaticResourceManagement,自动资源管理)特征和多个catch块的使用答:
8、如果一个try块中有多个异常要被捕获,catch块中的代码会变丑陋的同时述要用多余的代码来记录异常。有鉴于此,Java7的一个新特征是:一个catch子句中可以捕获多个异常。示例代码如下:catch(IOExccption
9、SQLExccption
此文档下载收益归作者所有