关于java问题的一个问题

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&新手求教 Java 8 关于读文件的一个简单有关问题 - J2SE当前位置:& &&&新手求教 Java 8 关于读文件的一个简单有关问题新手求教 Java 8 关于读文件的一个简单有关问题&&网友分享于:&&浏览:0次新手求教 Java 8 关于读文件的一个简单问题
import&java.nio.file.P
import&java.util.*;
//&演示文件IO方法
public&class&Test&{
public&static&void&main(String[]&args)&{
//&第一步:构建一个Scanner对象
&&&&&&&&//&Paths.get这个方法提示编译出错,但我是照着书上的例子写的,请问哪里出问题了?
Scanner&in&=&new&Scanner(Paths.get("/home/fangmeng/testFile"));
//&第二步:调用input函数族
while&(in.hasNextLine())&{
String&lineStr&=&in.nextLine();
System.out.print(lineStr);
//&关闭输入流
in.close();
------解决思路----------------------抛异常
public&static&void&main(String[]&args)&throws&&{&
//&第一步:构建一个Scanner对象
//&Paths.get这个方法提示编译出错,但我是照着书上的例子写的,请问哪里出问题了?
Scanner&in&=&new&Scanner(Paths.get("/home/fangmeng/testFile"));
//&第二步:调用input函数族
while&(in.hasNextLine())&{
String&lineStr&=&in.nextLine();&&&&&&&&//&读取行
System.out.print(lineStr);
//&关闭输入流
in.close();&
}------解决思路----------------------package&
import&java.nio.file.P
import&java.util.*;
//&演示文件IO方法
public&class&Test&{
public&static&void&main(String[]&args)&throws&IOException&{
//&第一步:构建一个Scanner对象
//&Paths.get这个方法提示编译出错,但我是照着书上的例子写的,请问哪里出问题了?
Scanner&in&=&new&Scanner(Paths.get("/home/fangmeng/testFile"));
//&第二步:调用input函数族
while&(in.hasNextLine())&{
String&lineStr&=&in.nextLine();
//&读取行&System.out.print(lineStr);
//&关闭输入流
in.close();
就能通过了,少了&throws&IOException&------解决思路----------------------IDE有没有提示解决办法?------解决思路----------------------把你的代码包围在try。。。catch块中
Scanner&in&=&new&Scanner(Paths.get("/home/fangmeng/testFile"));
这句有个IOException要处理------解决思路----------------------lz已经抛出异常了额...
感觉应该是没有这个文件的缘故吧,有后缀名的文件要加后缀名的
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有Java异常的面试问题及答案-Part 3 - ImportNew
| 标签: ,
Java提供了一个健壮的、面向对象的方法来处理出现异常,称为Java异常处理。 今天我将列出一些重要的Java异常面试的问题及答案,希望对你们的面试有所帮助。这是这个主题的第三篇。第一篇请猛击&a href=&#.html&#8221;&这里&/a&,第二篇请猛击&a href=&#.html&#8221;&这里&/a&
14.提供一些Java异常处理的最佳实践。
答:有关Java异常处理的相关最佳实践如下:
使用具体的异常方便调试
程序中早点抛出异常
捕获异常后先让调用者处理异常
使用Java 7 ARM功能确保资源关闭或者用finally子句正确地关闭它们
为了调试需要总是记录异常信息
用多个catch子句实现更完全的关闭
你自己的应用API中用自定义的异常来抛出单种类型异常
遵循命名规定,以异常结束
在Javadoc中用@throws来标注方法抛出的异常
处理异常是有花销的,因此只有在必要时才抛出。否则,你会扑空或毫无收获。
15.下面的程序中有什么问题,该怎么去修改?
答:这里将针对一些跟异常相关的编程问题:
A.下面这段代码有什么问题呢?
package com.journaldev.
import java.io.FileNotFoundE
import java.io.IOE
public class TestException {
public static void main(String[] args) {
testExceptions();
} catch (FileNotFoundException | IOException e) {
e.printStackTrace();
public static void testExceptions() throws IOException,
FileNotFoundException {
上面这段代码将不能被编译,并且会得到:The exception FileNotFoundException is already caught by the alternative IOException这样的错误信息,这是因为FileNotFoundException是IOException的子类。有两种方法来解决此问题:第一种是用两个catch子句来处理这两个异常。代码如下:
testExceptions();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch (IOException
e.printStackTrace();
另一种方法就是在catch子句中移除FileNotFoundException,只用IOException。如:
testExceptions();
}catch (IOException
e.printStackTrace();
你可以根据自己的catch子句情况选择上面的任一方法。
B.下面这段代码又有什么问题呢?
package com.journaldev.
import java.io.FileNotFoundE
import java.io.IOE
import javax.xml.bind.JAXBE
public class TestException1 {
public static void main(String[] args) {
} catch (IOException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (JAXBException e) {
e.printStackTrace();
public static void go() throws IOException, JAXBException, FileNotFoundException{
跟A代码一样,代码将不能编译,因为FileNotFoundException是IOException的子类,所以,FileNotFoundException的catch子句将被隐藏,同时,你会得到这样的:Unreachable catch block for FileNotFoundException.的错误信息。因为异常已被IOException的catch子句处理。你需要改变catch子句的顺序来修复程序。代码如下:
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JAXBException e) {
e.printStackTrace();
JAXBException跟FileNotFoundException和IOException不相关,它能放在catch块层级的任何位置。
C.下面的代码同样存在问题。
package com.journaldev.
import java.io.IOE
import javax.xml.bind.JAXBE
public class TestException2 {
public static void main(String[] args) {
} catch (IOException e) {
e.printStackTrace();
}catch(JAXBException e){
e.printStackTrace();
}catch(NullPointerException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
public static void foo() throws IOException{
这段代码同样不能编译,因为JAXBException是个受检查的异常,而foo方法应该抛出此异常供调用方法捕获。你将会得到:Unreachable catch block for JAXBException这样的错误信息。这个异常不可能从try子句中抛出。为解决这个错误,只能将JAXBException从catch子句中移除。
也要注意到,NullPointerException的异常捕获是有效的,因为它是个不被检查的异常。
D.下面的代码存在什么问题呢?
package com.journaldev.
public class TestException3 {
public static void main(String[] args) {
}catch(NullPointerException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
public static void bar(){
public static void foo() throws NullPointerException{
这代码是个幌子,根本没问题,能被正确编译。我们能捕获到一般异常或者是不被检查的异常,即使在throws语句中没被提及。
同样,如果程序中的一个方法foo()在throws中声明了不被检查的异常,程序中也不一定要处理这个异常。
E.下面这段代码同样存在瑕疵。
package com.journaldev.
import java.io.IOE
public class TestException4 {
public void start() throws IOException{
public void foo() throws NullPointerException{
class TestException5 extends TestException4{
public void start() throws Exception{
public void foo() throws RuntimeException{
这段代码不能被编译,因为父类中start的方法签名与子类中的start方法签名不相同。为纠正这错误,我们可以修改子类的方法签名使之与超类相同,我们也可以像下面代码那样移除子类中throws关键字。
public void start(){
F.下面的代码存在什么问题呢?
package com.journaldev.
import java.io.IOE
import javax.xml.bind.JAXBE
public class TestException6 {
public static void main(String[] args) {
} catch (IOException | JAXBException e) {
e = new Exception(&&);
e.printStackTrace();
}catch(Exception e){
e = new Exception(&&);
e.printStackTrace();
public static void foo() throws IOException, JAXBException{
这段代码同样不能编译,因为在多个catch子句中的异常对象是不可变的,我们不能改变其值。你会得到这样的:The parameter e of a multi-catch block cannot be assigned编译时错误信息。我们需要删掉将e赋值给新异常对象这句来修正错误。
想了解更多关于Java7多个catch子句的细节,请猛点。
这就是所有异常面试的问题,希望你们能喜欢。同时,我也希望将来能在列表中添加更多的问题,以适应未来的需要。
原文链接:
- 译文链接: [ 转载请保留原文出处、译者和译文链接。]
关于作者:
(新浪微博:)
solr的相关东西看http://cwiki.apache.org/solr很容易入门,现在网上一堆...
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:@
广告与商务合作QQ:
&#8211; 好的话题、有启发的回复、值得信赖的圈子
&#8211; 写了文章?看干货?去头条!
&#8211; 为IT单身男女服务的征婚传播平台
&#8211; 优秀的工具资源导航
&#8211; 活跃 &#038; 专业的翻译小组
&#8211; 国内外的精选博客文章
&#8211; UI,网页,交互和用户体验
&#8211; JavaScript, HTML5, CSS
&#8211; 专注Android技术分享
&#8211; 专注iOS技术分享
&#8211; 专注Java技术分享
&#8211; 专注Python技术分享
& 2016 ImportNew}

我要回帖

更多关于 java技术面试问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信