2012-08-23 80 views
2

我一直在试图设置一个简单的Serversocket,我想抛出一个异常(除了一些其他的东西,即设置一个var为false),如果遇到一些错误,它可以使用外部回调,但关闭? 飞镖编辑器给了我一个错误,并拒绝运行它!从封闭抛出异常

Server(String address,int port,int backlog) 
{ 
    this.s = new ServerSocket(address,port,backlog); 
    this.s.onError = (e) => throw new Exception(e); 
} 

我也试过“扔e”和类似的东西,但只要“扔”存在ide不会运行它。

回答

4

我有同样的问题,飞镖接缝无法接受在单线封闭投掷。你应该可以这样做:

Server(String address,int port,int backlog) 
{ 
    this.s = new ServerSocket(address,port,backlog); 
    this.s.onError = (e) { 
     throw new Exception(e); 
    }; 
} 

我还没看过spec,所以我不知道它的故意还是bug。

+4

因此,正如Google的William Hesse在邮件列表中所说的那样,“throw 是一个声明,而不是一个表达式,所以它只能在一个语句块中去掉 ”所以这是一个设计选择,我猜。 – Hamcha