★☆★☆★该怎么写这个异常?急,在线等!!

jspziyouren 2004-06-12 03:41:54
我有一个bean,其内容如下:

package tongxun;
import java.io.*;
import java.util.*;
import java.net.*;
import javax.servlet.http.HttpServletResponse;

public class tongxunbean {
public tongxunbean() {
}
public void send(String name,String ip,HttpServletResponse response,int time,int port)throws Exception{
/*
error1,表示初始连接失败;
error2,表示超时;
*/
try {
Socket socket =new Socket(ip, port);
}catch(Exception e)
{
response.sendRedirect("error1.jsp");
}


try {
socket.setSoTimeout(time);

while(true){

BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println(name);
String str = in.readLine();
System.out.println(str);
if (str.equals("updatefinish")){
socket.close();
System.out.println("closing...");
response.sendRedirect("updatedb.jsp?name="+name);
break;
}
}
} catch (Exception e)
{
response.sendRedirect("error2.jsp");
}



}
}
我想让它抛出两个异常,根据不同的异常,分别指想error1.jsp或error2.jsp,该怎么改呢?急,求救!!
...全文
219 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuzhe 2004-06-14
  • 打赏
  • 举报
回复
直接在程序里判断两种情况进行跳转不就可以了吗,为什么非要用异常来进行流程控制呢?
如果服务器没打开,应该可以立即判断吧;如果超时,设个计数器不就可以了吗?不知道我的回答对不对
tyyang 2004-06-14
  • 打赏
  • 举报
回复
我学
jspziyouren 2004-06-14
  • 打赏
  • 举报
回复
他那个不行,解决不了我的问题?救命啊
jiankou2001 2004-06-14
  • 打赏
  • 举报
回复
nc201(Bricklayer) ( )
他不是说得很清楚了吗??
jspziyouren 2004-06-14
  • 打赏
  • 举报
回复
我实现不了 急
Philzzf 2004-06-14
  • 打赏
  • 举报
回复
不都帮你改好了嘛,哎
bon_jovi 2004-06-14
  • 打赏
  • 举报
回复
异常处理不要用于流程控制.
jspziyouren 2004-06-14
  • 打赏
  • 举报
回复
还是有点不太懂,我那个程序,究竟要怎么改才能实现我的那个意思啊?
我的意思是想:如果我这个客户端和服务器端程序初始连接失败的话,(比如说服务器那端没有打开)让它跳转到error1,
如果客户端这边等待超时,(例如服务器那边迟迟没有给客户端返回"updatefinish"字符串),让它跳转到error2.请问各位大哥,我应该怎么改这个程序
Philzzf 2004-06-14
  • 打赏
  • 举报
回复
flycqz()不是已经说了嘛
你的代码好像还有点问题,帮你改造一下:
public void send(String name,String ip,HttpServletResponse response,int time,int port)throws Exception{
Socket socket=null;
try {
socket =new Socket(ip, port);

socket.setSoTimeout(time);

while(true){

BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println(name);
String str = in.readLine();
System.out.println(str);
if (str.equals("updatefinish")){
socket.close();
System.out.println("closing...");
throw new MyException();//你自己编写的异常
//response.sendRedirect("updatedb.jsp?name="+name);
//break;
}
}


}catch(IOException e){//这里捕获IOException
response.sendRedirect("error1.jsp");
}catch(MyException e){//这里捕获MyException
response.sendRedirect("error2.jsp");
}
}
//附
public MyException extends Exception{
public MyException(){
super();
}
public MyException(String msg){
super(msg);
}
}

zhouziqiang 2004-06-14
  • 打赏
  • 举报
回复
靠自己
jspziyouren 2004-06-14
  • 打赏
  • 举报
回复
要想 直接在程序里判断两种情况进行跳转 我的程序应该怎么改写呢 ,请赐教!
凋零的老树 2004-06-14
  • 打赏
  • 举报
回复
严谨的程序,在运行后没有异常抛出,在抛出以前都处理了
jspziyouren 2004-06-14
  • 打赏
  • 举报
回复
你说的真的不对:)
jspziyouren 2004-06-12
  • 打赏
  • 举报
回复
有人会吗?
flycqz 2004-06-12
  • 打赏
  • 举报
回复
exception有很多子类,如sql执行异常,主健重复异常(jdbc),你可以找找看,jdbc和i/o中有很多是这样处理exception的:

try
{
}catch(Exeption1 exx1)
{
}cattch(Exception2 exx2)
{
}
jspziyouren 2004-06-12
  • 打赏
  • 举报
回复
我的意思是想:如果我这个客户端和服务器端程序初始连接失败的话,(比如说服务器那端没有打开)让它跳转到error1,
如果客户端这边等待超时,(例如服务器那边迟迟没有给客户端返回"updatefinish"字符串),让它跳转到error2.请问各位大哥,我应该怎么改这个程序
jspziyouren 2004-06-12
  • 打赏
  • 举报
回复
我应该怎么该呢,救急啊
Arias 2004-06-12
  • 打赏
  • 举报
回复
Socket socket =new Socket(ip, port);

注意参数使用的范围问题!

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧