java - 默认构造函数无法处理隐式 super 构造函数抛出的异常类型 SocketException

标签 java android eclipse

我正在开发一个 Android 应用程序,它可以通过同时调用电话和发送包裹来手动在 3G 和 4G 之间切换。当我结束通话时,包裹将继续发送,将手机保持在 3G 状态,但是当我按下一个按钮时,它会终止包裹。

我对大部分代码都很好,但是我从其他人那里得到了发送包的程序,我对如何运行它有点困惑,特别是我在声明时遇到的这个错误字段套接字。我收到一条错误消息,指出“默认构造函数无法处理隐式 super 构造函数抛出的异常类型 SocketException。必须定义显式构造函数。”

这是我的包的类文件:

package com.example.derpphone;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.util.TimerTask;
public class timer extends TimerTask {


    DatagramSocket socket = new DatagramSocket();
    @Override
    public void run() {     
                if (socket != null) {
                                   byte[] bytes = new byte[100];
                    SocketAddress serverAddress = new InetSocketAddress("131.179.176.74",
                            9998);
                    try {
                        DatagramPacket packet = new DatagramPacket(bytes,
                                bytes.length, serverAddress);
                        socket.send(packet);                    

                    } catch (Exception e) {

                    }
                }
            }
}

最佳答案

将您的代码更改为:

DatagramSocket socket; 

public timer() throws Exception {
    socket = new DatagramSocket();
}

当你写的时候:

DatagramSocket socket = new DatagramSocket();

没有默认构造函数,它等同于:

DatagramSocket socket;

public timer() {  
    super();
    socket = new DatagramSocket();
}

由于 DatagramSocket 构造函数抛出异常,需要捕获或声明。

关于java - 默认构造函数无法处理隐式 super 构造函数抛出的异常类型 SocketException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24687021/

相关文章:

java - 重新启动应用程序刽子手

Java——如何访问(导入)与 src 文件夹位于同一目录的文件夹中的类文件?

android - Eclipse 在 Android SDK 内容加载器处挂起

java - BeanInstantiationException : Failed to instantiate : No default constructor found;

java - 加斯顿和阿尔方斯示例 : How does the bowBack get accessed?

java - 实时监控Java进程内存

安卓编程: Where To Start For Creating A Simple File Browser?

Android - 线程正在破坏应用程序

android - listview行自定义布局问题

java - OpenCV 无法打开视频 Windows 8.1