A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

跟着视频教程自己写了几个程序,在处理异常的时候,抛出RuntimeException??就是编译不通过,注释掉就可以了
//同一窗口聊天
import java.io.*;
import java.net.*;
class Send implements Runnable
{
        private DatagramSocket ds;
        Send(DatagramSocket ds)
        {
                this.ds = ds;
        }
        public void run()
        {
                try
                {
                        BufferedReader bufr =
                        new BufferedReader(new InputStreamReader(System.in));
                        String line = null;
                        while((line=bufr.readLine())!=null)
                        {
                                if("over".equals(line))
                                        break;
                                byte[] buf = line.getBytes();
                                DatagramPacket dp =
                                        new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.103"),10002);

                                ds.send(dp);
                        }
               
                }
                catch (Exception e)
                {
                        //throw new RuntimeException("上传失败");
                }
        }

}
class Rece implements Runnable
{
        private DatagramSocket ds;
        Rece(DatagramSocket ds)
        {
                this.ds = ds;
        }
        public void run()
        {
                try
                {
                        while(true)
                        {
                                byte[] buf = new byte[1024];
                                DatagramPacket dp = new DatagramPacket(buf,buf.length);

                                ds.receive(dp);
                                String ip = dp.getAddress().getHostAddress();
                                String data = new String(dp.getData(),0,dp.getLength());

                                System.out.println(ip+":"+data);
                       
                        }
       
                }
                catch (Exception e)
                {
                        //throw new RuntimeException("读取失败");
                }
               
        }
}
class  SocketDemo
{
        public static void main(String[] args) throws Exception
        {
                DatagramSocket SendSocket = new DatagramSocket();
                DatagramSocket ReceSocket = new DatagramSocket(10002);

                new Thread(new Send(SendSocket)).start();
                new Thread(new Rece(ReceSocket)).start();
        }
}





11 个回复

倒序浏览
catch(Exception e),抓到的异常在try代码块里,try代码块里没有报RuntimeExcetion异常,catch就抓不到,在里面抛这个应该不太合适,抛IOException试试看。
回复 使用道具 举报
本帖最后由 wisely 于 2014-8-15 12:40 编辑
wisely 发表于 2014-8-15 12:35
catch(Exception e),抓到的异常在try代码块里,try代码块里没有报RuntimeExcetion异常,catch就抓不到, ...

好像不太对,楼主略过即可……
坐等大神!
回复 使用道具 举报
编译通过啊  {:2_34:}  
回复 使用道具 举报

你把运行异常注释 吗?注释了是能通过,去掉注释就不行了
回复 使用道具 举报
wisely 发表于 2014-8-15 12:38
好像不太对,楼主略过即可……
坐等大神!

嗯,没有运行时编译就通不过
回复 使用道具 举报
华谦 发表于 2014-8-16 10:18
你把运行异常注释 吗?注释了是能通过,去掉注释就不行了

我去掉了, 可以运行
回复 使用道具 举报
陈君 金牌黑马 2014-8-16 13:41:56
8#
华谦 发表于 2014-8-16 10:18
你把运行异常注释 吗?注释了是能通过,去掉注释就不行了

我去掉了也编译通过了!!!!!!!!如果你编译不通过把错误信息给我们看看
回复 使用道具 举报
华谦 中级黑马 2014-8-16 13:59:01
9#
陈君 发表于 2014-8-16 13:41
我去掉了也编译通过了!!!!!!!!如果你编译不通过把错误信息给我们看看 ...


D:\java0507>javac udp聊天.java
udp聊天.java:38: 无法访问 RuntimeException
错误的类文件: .\RuntimeException.java
文件不包含类 RuntimeException
请删除该文件或确保该文件位于正确的类路径子目录中。
                        throw new RuntimeException("上传失败");
                                  ^
1 错误
回复 使用道具 举报
王凯路路 发表于 2014-8-16 12:21
我去掉了, 可以运行


D:\java0507>javac udp聊天.java
udp聊天.java:38: 无法访问 RuntimeException
错误的类文件: .\RuntimeException.java
文件不包含类 RuntimeException
请删除该文件或确保该文件位于正确的类路径子目录中。
                        throw new RuntimeException("上传失败");
                                  ^
1 错误


我编译出现这提示
回复 使用道具 举报
jdk里面的文件是不是动了啊 ?  他这个说的是你要new的对象没有么不是.
回复 使用道具 举报
王凯路路 发表于 2014-8-16 18:02
jdk里面的文件是不是动了啊 ?  他这个说的是你要new的对象没有么不是.

我也想过是这个问题,重装了JDK也不行,而且什么都没改过,装好直接试不行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马