关于java中出现Unreachable code 编译错误的问题

今天在写程序的时候,不小心出现了一个Unreachable code的编译错误。苦恼了我好久。下面是我的代码:
public void start() {
		try {
				Scanner scan = new Scanner(System.in);
				 
				
				OutputStream out = socket.getOutputStream();
				OutputStreamWriter osw = new OutputStreamWriter(out,"gbk");
				PrintWriter pw = new PrintWriter(out,true);
			while(true) {
				pw.println(scan.nextLine());
				pw.flush();
				pw.close();
			}
			GetMessageHandler handler = new GetMessageHandler();.......................1
		} catch (IOException e) {
			
			e.printStackTrace();
		}
	}

在代码行1处,就报了Unreachable code 的错误。后来仔细思考,发现原来是这样的。因为在代码行1千有一个循环是自己造的一个死循环,即while(true){xxxxxxx},

这也就是说,循环不会停止,自然也就无法执行到循环之后的代码。要想避免这个错误,只需要把该处的代码提前到循环之前或者把循环改为非死循环即可。

当然,出现Unreachable code 这个编译错误还有可能出现在代码写在break;return;之后时发生,原因也是代码不会再往下执行了。这也就是该编译错误的字面意思——“无法达到的代码”!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值