黑马程序员技术交流社区

标题: 抛异常问题 [打印本页]

作者: 孙飞    时间: 2012-7-17 22:11
标题: 抛异常问题
本帖最后由 feigecal 于 2012-7-18 07:28 编辑

import java.net.*;
import java.io.*;
class KeHuDuan
{
        public static void main(String[] args)
        {
                Socket s=null;
                try
                {
                        s=new Socket("192.168.1.37",10003);//这里是我电脑的IP
                        OutputStream out=s.getOutputStream();
                        out.write("hello".getBytes());
                }
                catch (IOException e)
                {
                        throw new RuntimeException();//为什么运行的时候这里会抛异常啊?
                }
                finally
                {
                        try
                        {
                                if (s!=null)
                                {
                                        s.close();
                                }
                        }
                        catch (IOException e)
                        {
                                throw new RuntimeException();
                        }
                }
        }
}

作者: 黄昆    时间: 2012-7-17 22:34
import java.net.*;
import java.io.*;
class KeHuDuan
{
         public static void main(String[] args)
        {
                 Socket s=null;
                 try
                 {
                         s=new Socket("192.168.1.37",10003); //在这里有两个地方会出现异常,一个是IP的异常,一个是 OutputStream out=s.getOutputStream()会抛出异常
                         OutputStream out=s.getOutputStream();
                         out.write("hello".getBytes());
                 }
                 catch (IOException e)
                 {
                         throw new RuntimeException();//为什么运行的时候这里会抛异常啊?
                                //因为如果你出入的IP不符合IP的格式,那么,程序也就没有在往下运行的必要了,所以要抛出RuntimeException异常。
                 }
                 finally
                 {
                         try
                         {
                                 if (s!=null)
                                 {
                                         s.close();
                                 }
                         }
                         catch (IOException e)
                         {
                                 throw new RuntimeException();
                         }
                 }
         }
}

作者: 孙飞    时间: 2012-7-17 22:41
黄昆 发表于 2012-7-17 22:34
import java.net.*;
import java.io.*;
class KeHuDuan

咋改?可以正常啊
作者: 刘笑    时间: 2012-7-17 22:53
程序里有操作数据的,必然有异常。所以必须得try、catch一下
作者: 孙飞    时间: 2012-7-17 23:00
刘笑 发表于 2012-7-17 22:53
程序里有操作数据的,必然有异常。所以必须得try、catch一下

已经try了啊
作者: 孙飞    时间: 2012-7-17 23:31
这个问题我问了高手搞定了,把IP改成本地循环地址127.0.0.1就欧了,但是之前的那个IP确实是我电脑IP啊,为什么会抛连接超时异常啊?有谁详解一下啊
作者: 张莹莹    时间: 2012-7-17 23:58
1.首先要抛出UnknownHostException, IOException,这两种异常。
2.我写了个Server,那你的测试了客户端,是正常的。(见附件Server.png)
3.测试你的输出结果。(见test.png)
4.我写的Client(Client.png)

Server.PNG (16.26 KB, 下载次数: 69)

Server

Server

test.PNG (704 Bytes, 下载次数: 34)

测试输出

测试输出

Client.PNG (21.2 KB, 下载次数: 65)

Client

Client





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2