JSP代码 我不知道怎么放入try和catch
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP代码 我不知道怎么放入try和catch相关的知识,希望对你有一定的参考价值。
我试把try和catch代码中,可是总是出现错误,我是个新手。请详细把try和catch放入代码中,还可以解释为什么要这样放。谢谢先了。代码如下:(可以调试到正确答案会给分哦)
-----------------------------------------------------------------
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*" errorPage=""%>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=学生成绩数据库";
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
%>
<CENTER><h2 class="style3">出库信息</h2>
<br>
<form name="form1" method="post" action="chuku2.jsp">
<p><span class="style4">请选择要出库的产品的代号:</span>
<select name="id">
<%ResultSet rs=stmt.executeQuery("SELECT* FROM student");
while(rs.next())
String id=rs.getString("id");
%>
<option value="<%=id%>"><%=id%></option>
<%%>
</select>
</p>
<p>
<input type="submit" name="queding" value="确定">
<input name="back" type="button" id="back" value="返回"
onClick="javascript:history.go(-1)">
</p>
</form>
</center>
</body>
</html>
try
//代码区
catch(Exception e)
//异常处理
代码区如果有错误,就会返回所写异常的处理。
首先要清楚,如果没有try的话,出现异常会导致程序崩溃。
而try则可以保证程序的正常运行下去,例如:
int i = 1/0;
catch(Exception e)
一个计算的话,如果除数为0,则会报错,如果没有try的话,程序直接崩溃。用try的话,则可以让程序运行下去,并且输出为什么出错!
try catch 是捕捉try部分的异常,当没有trycatch的时候,如果出现异常则程序报错,加上trycatch,出现异常程序正常运行,只是把错误信息存储到Exception里,所以catch是用来提取异常信息的,可以在Catch部分加上一句System.out.println(e.ToString());,如果出现异常可以把异常打印出来
try-catch-finally示例:public class TestException
public TestException()
boolean testEx() throws Exception
boolean ret = true;
try
ret = testEx1();
catch (Exception e)
System.out.println("testEx, catch exception");
ret = false;
throw e;
finally
System.out.println("testEx, finally; return value=" + ret);
return ret;
boolean testEx1() throws Exception
boolean ret = true;
try
ret = testEx2();
if (!ret)
return false;
System.out.println("testEx1, at the end of try");
return ret;
catch (Exception e)
System.out.println("testEx1, catch exception");
ret = false;
throw e;
finally
System.out.println("testEx1, finally; return value=" + ret);
return ret;
boolean testEx2() throws Exception
boolean ret = true;
try
int b = 12;
int c;
for (int i = 2; i >= -2; i--)
c = b / i;
System.out.println("i=" + i);
return true;
catch (Exception e)
System.out.println("testEx2, catch exception");
ret = false;
throw e;
finally
System.out.println("testEx2, finally; return value=" + ret);
return ret;
public static void main(String[] args)
TestException testException1 = new TestException();
try
testException1.testEx();
catch (Exception e)
e.printStackTrace();
输出结果:
i=2
i=1
testEx2, catch exception
testEx2, finally; return value=false
testEx1, finally; return value=false
testEx, finally; return value=false 参考技术A 原理:把HTML代码都剥除了,剩下的就是 Java代码了。 你需要注意的就是 上下文“”的匹配问题。因为在JSP上编写代码 是没有 IDE辅助的。 参考技术B 嗯 ...JSP里的脚本里能放try catch的.. 还有就是,JSP里面最好不要写太多业务逻辑,这些业务逻辑应该交给BO去做,然后让Servlet去调用BO得到结果,再拿给JSP展示...... 建议先学学MVC模式....... 参考技术C 写代码要养成良好好习惯,所以mvc还是要了解清楚的,jsp一般只做页面表示层,当然偶尔也可以写点脚本,控制层一般用servlet去完成,持久层jdbc,这是不用其它的框架的情况下,如果用框架又不同得看用什么框架了 参考技术D 没人会把try catch语句放在jsp里面的啊,这个需求本身就不合理的,你可以试试用javabean来做,jsp被访问时,调用bean的方法,将数据查询出来以List的形式返回给jsp页,jsp只是负责显示的,像你说的那种业务逻辑的代码不要写在jsp中,非常不安全,写成功了也没人敢用的,暴露了数据库种类,用户名和密码,太可怕了 呵呵,去看看MVC设计模式吧,jsp只负责显示结果(view) servlet负责控制(contrl) javabean负责实现业务逻辑(model)
try / catch和MFC TRY / CATCH有什么区别?
我正在重构一些遗留的C ++ MFC代码并且遇到了这个结构:
TRY
{
// do some stuff
}
CATCH
{
// do some other stuff
}
END_CATCH
对我来说,这似乎很不寻常,我试图了解使用TRY/CATCH
有利于try/catch
的好处是什么。
我看到TRY
创建了AFX_EXCEPTION_LINK
的一个实例,我不太明白这个的目的。我的谷歌搜索技巧失败了。
MFC(及其exception processing宏)早于C ++ 98语言规范。在MFC中使用异常时,宏会尝试抽象掉常见的样板代码。由于设计决策,样板代码是必要的,MFC中的异常是动态分配的,需要手动处理。
使用C ++异常处理替换MFC异常处理宏所需的步骤记录在Exceptions: Converting from MFC Exception Macros下:
使用宏转换代码以使用C ++异常处理关键字
- 找到所有出现的MFC宏
TRY
,CATCH
,AND_CATCH
,END_CATCH
,THROW
和THROW_LAST
。- 替换或删除以下所有出现的宏:
TRY
(用try
代替)CATCH
(用catch
代替)AND_CATCH
(用catch
代替)END_CATCH
(删除它)THROW
(用throw
代替)THROW_LAST
(用throw
代替)- 修改宏参数,以便它们形成有效的异常声明。 例如,改变
CATCH(CException, e)
至catch(CException* e)
- 修改catch块中的代码,以便根据需要删除异常对象。有关更多信息,请参阅文章Exceptions: Catching and Deleting Exceptions。
以下是使用MFC异常宏的异常处理代码示例。请注意,因为以下示例中的代码使用宏,所以会自动删除异常
e
:TRY { // Do something to throw an exception. AfxThrowUserException(); } CATCH(CException, e) { if (m_bPassExceptionsUp) THROW_LAST(); if (m_bReturnFromThisFunction) return; // Not necessary to delete the exception e. } END_CATCH
下一个示例中的代码使用C ++异常关键字,因此必须显式删除异常:
try { // Do something to throw an exception. AfxThrowUserException(); } catch(CException* e) { if (m_bPassExceptionsUp) throw; if (m_bThrowDifferentException) { e->Delete(); throw new CMyOtherException; } if (m_bReturnFromThisFunction) { e->Delete(); return; } e->Delete(); }
转换几乎是机械的,只要您记得通过调用CException::Delete手动删除MFC异常。
1这与今天的C ++异常处理约定形成对比:按值抛出,按(const)引用捕获。
以上是关于JSP代码 我不知道怎么放入try和catch的主要内容,如果未能解决你的问题,请参考以下文章
try / catch和MFC TRY / CATCH有什么区别?