import java.io.*;
import java.util.*;
import java.net.*;
public class SocketTest
{
public static void main(String[] args)
{
try
{
Socket s=new Socket("time-A.timefreq.bldrdoc.gov",13);
try
{
InputStream inStream=s.getInputStream();
Scanner in=new Scanner(inStream);
while(in.hasNextLine())
{
String line=in.nextLine();
System.out.println(line);
}
}
finally
{
s.close();
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}这段代码的try  catch语句可不可以写成以下这样:
import java.io.*;
import java.util.*;
import java.net.*;
public class SocketTest
{
public static void main(String[] args)
{
try
{
Socket s=new Socket("time-A.timefreq.bldrdoc.gov",13);


InputStream inStream=s.getInputStream();
Scanner in=new Scanner(inStream);
while(in.hasNextLine())
{
String line=in.nextLine();
System.out.println(line);
}
              }

       finally
{
s.close();
}

catch(IOException e)
{
e.printStackTrace();
}
}
}
就是省掉一个try语句不知道可以吗?

解决方案 »

  1.   

    不能
    finally 块必须与 try 或 try/catch 块配合使用
      

  2.   

    不能这样啊,,,TRY/CATCH语句块不能这样分开的吧/???
      

  3.   

    你可以这样
    try{
    }finally{}
    也可以这样
    try{
    }catch(Exception e){
    }finally{}
    或者
    try{
    }catch(Exception e){
    }
      

  4.   

    你的改法是不能通过的,会直接报错;catch 必须与try匹配
    正确方法见3楼
      

  5.   

    可以   不过有点小问题:
    try
    {
            Socket   s=new   Socket("time-A.timefreq.bldrdoc.gov",13);
            InputStream   inStream=s.getInputStream();
            Scanner   in=new   Scanner(inStream);
            while(in.hasNextLine())
           {
                String   line=in.nextLine();
                System.out.println(line);
           }
     }
    catch(IOException   e)
    {
         e.printStackTrace();
    }
    finally
    {
       s.close();
    }
    } 这样就 可以了