2012-08-23 108 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