我在vb.net和Oracle数据库中有一个项目。当用户口令在oracle中过期时导致一个oracle的豁免。我处理该异常(打开ChangePassword形式和我更改密码),但我失去我正准备执行时,误差出现的过程:
例子:密码已过期
Try
conn = New OracleConnection
conn.ConnectionString = gApp.ConnectString
conn.Open()
'Let's say that error appears here, I want to retun here after password has been changed
cmd.Connection = conn
cmd.CommandText = "Delete_Transaction"
cmd.CommandType = CommandType.StoredProcedure
OracleCommandBuilder.DeriveParameters(cmd)
cmd.Parameters("in_transaction_id").Value = TransactionId
cmd.ExecuteNonQuery()
conn.Close()
Catch ex As OracleException
'PseudoCode: if error is PasswordExpired->open the ChengePassForm...blah,blah
'is handled by a Error class that i have
Finally
If Not conn Is Nothing Then
conn.Dispose()
End If
End Try
的主要问题是,这个问题可以出现在代码无处不在,我的意思是不同的程序,不同的形式等。
所以我需要一个通用的解决方案。其实我甚至无法想象一个正确的逻辑来解决这个问题。任何人都可以告诉我一个方向?
我不是那么熟悉的代表和lamdas表达。你可以说得更详细点吗? – Nianios 2013-02-25 15:34:04