100分!请问web程序出现异常如何继续执行?
我有上百个insert语句,点一个按钮发送
如果中间有一个insert不成功,可能是与数据库的字段类型不对应,比如是小数,我传的是abc,发生异常,如何才能不影响后面的语句执行?
用goto?
------解决方案--------------------上百个insert语句,不是都写在页面上的吧
建议用数据库的存储过程,并用数据事务来处理!
------解决方案--------------------你得循环遍历执行,才可以,
------解决方案--------------------up
好像没有办法继续
------解决方案--------------------不能强制执行吗
------解决方案--------------------.net中有goto语句吗?
lz换一种方式写啊
------解决方案--------------------try
{
}
catch
{
continue;
}
------解决方案--------------------// Sample, SQL Server, C#,INNER-SQL
string connStr = "server=.;database=MyDb;uid=sa;pwd=654321 ";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = CommandType.Text;
SqlTransaction trans = null;
using (conn) {
conn.Open();
using (trans = conn.BeginTransaction()) { // 开始事务
cmd.Transaction = trans;
string isql = null;
for (int i = 0; i < 100; i++) {
// 构造每个 isql
// ...
cmd.CommandText = isql;
try {
cmd.ExecuteNonQuery();
}
catch(SqlException ex) {
// 发生错误
// 最佳实践,应该写入日志,
// 继续执行
// ...
}
}
try {
trans.Commit(); // 提交事务
}
catch {
trans.Rollback();
throw; // 抛出异常,待顶层应用程序处理
}
}
}
------解决方案--------------------在就放在FILLY里面继续执行被~ 然后在TYR 在CATCH 在FILLILY
------解决方案--------------------可以通过纠错的方式
try
{}
catch
{}
------解决方案--------------------可以进行判断,但是 比较的麻烦而且效率低,
建议最好是使用存储过程,通过事务进行插入。
------解决方案--------------------只要try,catch,并且在catch中什么都不写就可以继续了。
不过,这有什么好处呢?
自己给自己找麻烦啊。
------解决方案--------------------错误也执行???
------解决方案--------------------把很多东西都交给 try catch 会影响性能的
个人认为 还是应该使用存储过程, 用事务来处理
------解决方案--------------------数据库处理单独写个方法.
try catch 它就可以.