异常捕获处理与抛出

1 public int insert(String user_id,String u_name,String u_pwd,String u_phone,String u_address,String u_sex,String u_birthday) throws Exception{
2         String sql="insert into user(user_id,u_name,u_pwd,u_phone,u_address,u_sex,u_birthday)" +"values("+"‘"+user_id+"‘"+","+"‘"+u_pwd+"‘"+","+"‘"+u_phone+"‘"+","+"‘"+u_phone+"‘"+","+"‘"+u_address+"‘"+","+"‘"+u_sex+"‘"+","+"‘"+u_birthday+"‘"+")";
3         st=connection.createStatement();
4         int count=0;
5                 count = st.executeUpdate(sql);
6         return count;
7 }

上面这段代码,发生异常后直接抛出给上一级处理,而上一级又抛出给上一级,最后,导致这个异常没有被处理,所以程序代码没有继续执行下去

此次在做数据库课设中,在插入数据时,特意测试一下插入失败的结果,发现自己代码中  异常处理的一些问题。

如上述代码为改正后的代码,插入失败后,发生异常后catch语句捕获处理,程序可以继续执行。代码如下

public int insert(String user_id,String u_name,String u_pwd,String u_phone,String u_address,String u_sex,String u_birthday){
        String sql="insert into user(user_id,u_name,u_pwd,u_phone,u_address,u_sex,u_birthday)" +"values("+"‘"+user_id+"‘"+","+"‘"+u_pwd+"‘"+","+"‘"+u_phone+"‘"+","+"‘"+u_phone+"‘"+","+"‘"+u_address+"‘"+","+"‘"+u_sex+"‘"+","+"‘"+u_birthday+"‘"+")";
        try {
            st=connection.createStatement();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        int count=0;
        try {
            count = st.executeUpdate(sql);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return count;
    }

原文地址:https://www.cnblogs.com/zhijianhu/p/8412798.html

时间: 2024-10-07 10:11:28

异常捕获处理与抛出的相关文章

4.异常捕获后再次抛出

4.异常捕获后再次抛出 情况一:捕获后抛出原来的异常,希望保留最新的异常抛出点--fillStackTrace 情况二:捕获后抛出新的异常,希望抛出完整的异常链--initCause 1.捕获后重新抛出捕获的异常 在函数中捕获了异常,在catch模块中不做进一步的处理,而是向上一级进行传递 catch(Exception e){ throw e; } public class ReThrow { public static void f()throws Exception{ throw new

异常CLRDBG_NOTIFICATION_EXCEPTION_CODE( 0x04242420)的抛出过程

新建一个c#控制工程,就用自动生成的代码,不用补任何代码,如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { } } } 工程配置如下 编译,在windbg里加载运行 当调试器中断时,在事件过滤器里添加异常0

捕获程序未抛出的异常

这段时间,Unity项目遇到问题,工程中有很多有问题的代码,调试的时候,这些代码理应抛出异常但是却没有,这是一个很恐怖的事情,因为你根本不知道你代码中有哪些不对,程序运行下来,就会遇到各种逻辑问题,查无对策.后来我研究了下,记录了下来 在unity中,子线程下的异常,如果不加try catch,可能不会被unity正常捕获,故而你会不知道这里有异常 先举个栗子 Thread t1,t2; List<int> list = null; void Start () { try { t1 = new

怎样自定义一个异常(报错) 并抛出

1. 自定义一个异常需要使用构造函数 Error() var error1 = new Error("This is an unknown error."); 2. 抛出异常需要使用 throw 关键字 var error1 = new Error("This is an unknown error."); throw error1; 执行后就可以得到这样的效果: 原文地址:https://www.cnblogs.com/aisowe/p/11655006.html

异常抛出与捕获的思考

异常处理的思考 在java中异常分为两类.一.检查性异常.二.非检查性异常(运行时异常) 二者的区别:检查性异常需要显式try-catch或者throw.运行时异常可以不用捕获. 对于检查性异常由于必须捕获,所有并不需要太多的讨论(在设计异常的时候需要考虑).主要讨论运行时异常的抛出与捕获. 运行时异常的正确捕获和抛出,能够让系统代码更加简洁与rd只需要关系正常业务,对于不正常业务则交由异常处理. 现在存在的困扰: 1.每调用一个其他方法,都需要考虑与分析这个方法是不是存在异常,影响正常业务流程

C++学习40 抛出自己的异常

throw 是C++中的关键字,用来抛出异常.如果不使用 throw 关键字,try 就什么也捕获不到:上节提到的 at() 函数在内部也使用了 throw 关键字来抛出异常. throw 既可以用在标准库中,也可以用在自定义的函数中,抛出我们期望的异常.throw 关键字语法为: throw exceptionData; exceptionData 是“异常数据”的意思,它既可以是一个普通变量,也可以是一个对象,只要能在 catch 中匹配就可以. 下面的例子演示了如何使用 throw 关键字

Java中抛出的各种异常

目录(?)[-] 引子 JAVA异常 处理异常机制 捕获异常trycatch 和 finally try-catch语句 trycatch-finally语句 try-catch-finally 规则异常处理语句的语法规则 trycatchfinally语句块的执行顺序 抛出异常 throws抛出异常 使用throw抛出异常 Throwable类中的常用方法 Java常见异常 runtimeException子类 IOException 其他 自定义异常 1. 引子 try…catch…fina

Java throw:异常的抛出怎么回事

到目前为止,你只是获取了被Java运行时系统抛出的异常.然而,程序可以用throw语句抛出明确的异常.Throw语句的通常形式如下:    throw ThrowableInstance;这里,ThrowableInstance一定是Throwable类类型或Throwable子类类型的一个对象.简单类型,例如int或char,以及非Throwable类,例如String或Object,不能用作异常.有两种可以获得Throwable对象的方法:在catch子句中使用参数或者用new操作符创建.

Think in Java 笔记_Chapter12_1_Exception基础_异常处理3_自定义异常以及抛出多个异常的处理

自定义异常 package cn.seven.shengsiyuan.exception; public class MyException extends Exception{//非运行时异常,因为只是继承了Exception并非RuntimeException public MyException() { // TODO Auto-generated constructor stub } public MyException(String message){ super(message);/