내가보기에 모든 것이 정확하기 때문에 이런 일이 일어나는 것은 위어입니다. 당신이 나를 도울 수 있다면, 나는 감사 수 여기에 코드입니다 수 있습니다 :"신고되지 않은 예외"가 나타나는 이유는 무엇입니까?
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
public class Server{
private static HashSet<String> users = new HashSet<String>();
//private static HashSet<String> passwords = new HashSet<String>();
private static HashSet<PrintWriter> writers = new HashSet<PrintWriter>();
private static final int port = 9001;
private static class SocketHandler extends Thread{
PrintWriter output;
BufferedReader input;
String name;
//String pass;
Socket socket;
public SocketHandler(Socket sc){
this.socket = sc;
}
public void run(){
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
output = new PrintWriter(socket.getOutputStream(), true);
try{
while(true){
output.println("SUBMITNAME");
name = input.readLine();
if(name == null){
return;
}
synchronized(users){
if(!users.contains(name)){
users.add(name);
break;
}
}
}
output.println("NAMEACCEPTED");
writers.add(output);
while(true){
String in = input.readLine();
if(in == null){
return;
}
for(PrintWriter writer : writers){
writer.println("MESSAGE: " + name + ": " + in);
}
}
}catch(IOException e){
System.out.println(e);
}finally{
if(name != null){
users.remove(name);
}
if(output != null){
writers.remove(output);
}
try{
socket.close();
}catch(IOException e){
System.out.println(e);
}
}
}
}
public static void main(String[]args) throws Exception{
ServerSocket listener = new ServerSocket(port);
System.out.println("The server is now running...");
try{
while(true){
new SocketHandler(listener.accept()).start();
}
}catch(IOException e){
System.out.println(e);
}finally{
listener.close();
}
Connection con = null;
ResultSet rs = null;
Statement s = null;
try{
Class.forName("org.sqlite.JDBC");
con = DriverManager.getConnection("jdbc:sqlite:/home/julio/Documents/Prueba.db");
s = con.createStatement();
rs = s.executeQuery("E-MAIL DATABASE");
while(rs.next()){
System.out.println("Enter your email adress: " + rs.getString("name"));
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
rs.close();
s.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
} 난 당신이 코드를 볼 수있는 경우 이런 일이 왜 모르는
, 내가 던져 모든 예외를 잡아 ..
이 화면이 표시
'IOException이 : 잡은 또는 당신이 무엇을 이해하지 못하는 thrown.'으로 선언해야합니까? 문장을'try' 블록 안에 넣으십시오. –
가능한 복제본 [보고되지 않은 예외 java.sql.SQLException; 붙잡혀 있어야하거나 던져 선언해야합니까?] (http://stackoverflow.com/questions/4457352/unreported-exception-java-sql-sqlexception-must-be-caught-or-declared-to-be-thr) –