def execute(masterForm): ofg = System.Windows.Forms.OpenFileDialog() ofg.RestoreDirectory = True ofg.Filter = "所有 Excel 文件|*.xls;*.xlsx;*.xml|Excel 97-2003 文件|*.xls|Excel 2007 文件|*.xlsx|XML 文件|*.xml" if (ofg.ShowDialog() == System.Windows.Forms.DialogResult.OK): try: dts = Feng.Utils.ExcelHelper.ReadExcel(ofg.FileName) if (dts.Count == 0): raise Feng.InvalidUserOperationException("Excel中无数据!") dt = dts[0] if (not dt.Columns.Contains("提单编号") or not dt.Columns.Contains("箱号") or not dt.Columns.Contains("费用类型") \ or not dt.Columns.Contains("免费天数") or not dt.Columns.Contains("币种") or not dt.Columns.Contains("实际金额")): raise Feng.InvalidUserOperationException( "文件中必须要有提单编号、箱号、费用类型、币种、实际金额栏,请查证!") errorDt = dt.Clone() db = Feng.Data.DbHelper.Instance.CreateDatabase( "DataConnectionString") tran = db.BeginTransaction() count = 0 try: for row in dt.Rows: fyx = '' je = 0 if (row["费用类型"].ToString() == "XXF"): fyx = "165" elif (row["费用类型"].ToString() == "ZX"): fyx = "167" else: raise Feng.InvalidUserOperationException( "费用类型不能是" + row["费用类型"].ToString() + "!") if (row["币种"].ToString() == "RMB"): je = Feng.Utils.ConvertHelper.ToDecimal(row["实际金额"]) elif (row["币种"].ToString() == "USD"): je = 7 * Feng.Utils.ConvertHelper.ToDecimal( row["实际金额"]) else: raise Feng.InvalidUserOperationException( "币种不能是" + row["币种"].ToString() + "!") db.ExecuteNonQuery("insert Temp_对账单费用查验(相关人,提单号,箱号,费用项,金额) values ('900010','" + str(row["提单编号"]) + "','" \ + str(row["箱号"]) + "','" + str(fyx) + "'," + str(je) + ")") count = count + 1 db.CommitTransaction(tran) Feng.MessageForm.ShowInfo("已导入" + str(count) + "条数据!") except System.Exception, ex: db.RollbackTransaction(tran) errorDt.ImportRow(row) Feng.ServiceProvider.GetService[ Feng.IExceptionProcess]().ProcessWithNotify( System.Exception('提单号' + row["提单编号"] + '数据有问题,请查证!', ex)) if (errorDt.Rows.Count > 0): errorFileName = System.IO.Path.GetDirectoryName(ofg.FileName) + '\\' + \ System.IO.Path.GetFileName(System.IO.Path.ChangeExtension(System.IO.Path.GetTempFileName(), ".xml")) Feng.Utils.ExcelXmlHelper.WriteExcelXml( errorDt, errorFileName) Feng.MessageForm.ShowInfo("请查看错误文件" + errorFileName) except System.Exception, ex: Feng.ServiceProvider.GetService[ Feng.IExceptionProcess]().ProcessWithNotify(ex)
def testException(self, mapper, _): self.assertEquals(mapper.LastException, None, "exception should default to nothing") mapper.LastException = System.Exception("doozy") self.assertEquals(type(mapper.LastException), Exception, "get should retrieve last set exception") self.assertEquals(str(mapper.LastException), "doozy", "get should retrieve last set exception")
def execute(masterForm): ofg = System.Windows.Forms.OpenFileDialog() ofg.RestoreDirectory = True ofg.Filter = "所有 Excel 文件|*.xls;*.xlsx;*.xml|Excel 97-2003 文件|*.xls|Excel 2007 文件|*.xlsx|XML 文件|*.xml" if (ofg.ShowDialog() == System.Windows.Forms.DialogResult.OK): try: dts = Feng.Utils.ExcelHelper.ReadExcel(ofg.FileName) if (dts.Count == 0): raise Feng.InvalidUserOperationException("Excel中无数据!") dt = dts[0] if (dt.Columns.Count != 17): raise Feng.InvalidUserOperationException("文件栏目格式不符,请查证!") errorDt = dt.Clone() db = Feng.Data.DbHelper.Instance.CreateDatabase( "DataConnectionString") tran = db.BeginTransaction() count = 0 try: for row in dt.Rows: fyxs = ('161') for i in range(0, 1, 1): fyx = '' je = 0 je = Feng.Utils.ConvertHelper.ToDecimal(row[13]) if (je == None): continue fyx = fyxs[i] db.ExecuteNonQuery("insert Temp_对账单费用查验(相关人,提单号,箱号,费用项,金额) values ('900003','" + str(row[4]) + "','" \ + str(row[1]) + "','" + str(fyx) + "'," + str(je) + ")") count = count + 1 db.CommitTransaction(tran) Feng.MessageForm.ShowInfo("已导入" + str(count) + "条数据!") except System.Exception, ex: db.RollbackTransaction(tran) errorDt.ImportRow(row) Feng.ServiceProvider.GetService[ Feng.IExceptionProcess]().ProcessWithNotify( System.Exception('提单号' + row[4] + '数据有问题,请查证!', ex)) if (errorDt.Rows.Count > 0): errorFileName = System.IO.Path.GetDirectoryName(ofg.FileName) + '\\' + \ System.IO.Path.GetFileName(System.IO.Path.ChangeExtension(System.IO.Path.GetTempFileName(), ".xml")) Feng.Utils.ExcelXmlHelper.WriteExcelXml( errorDt, errorFileName) Feng.MessageForm.ShowInfo("请查看错误文件" + errorFileName) except System.Exception, ex: Feng.ServiceProvider.GetService[ Feng.IExceptionProcess]().ProcessWithNotify(ex)
def test_iteration_innerexception(): from Python.Test import ExceptionTest from System import OverflowException exception = System.Exception("message", OverflowException("error")) val = ExceptionTest.ThrowExceptionInIterator(exception).__iter__() assert next(val) == 1 assert next(val) == 2 with pytest.raises(OverflowException) as cm: next(val) exc = cm.value assert exc == exception.InnerException # after exception is thrown iterator is no longer valid with pytest.raises(StopIteration): next(val)
def test_managed_exception_conversion(): """Test conversion of managed exceptions.""" from System import OverflowException from Python.Test import ExceptionTest e = ExceptionTest.GetBaseException() assert isinstance(e, System.Exception) e = ExceptionTest.GetExplicitException() assert isinstance(e, OverflowException) assert isinstance(e, System.Exception) e = ExceptionTest.GetWidenedException() assert isinstance(e, OverflowException) assert isinstance(e, System.Exception) v = ExceptionTest.SetBaseException(System.Exception('error')) assert v v = ExceptionTest.SetExplicitException(OverflowException('error')) assert v v = ExceptionTest.SetWidenedException(OverflowException('error')) assert v
def test_interop(): load_iron_python_test() from IronPythonTest import ExceptionsTest import System import sys a = ExceptionsTest() try: a.ThrowException() # throws index out of range except IndexError as e: Assert(e.__class__ == IndexError) class MyTest(ExceptionsTest): def VirtualFunc(self): raise ex("hello world") ex = ValueError a = MyTest() # raise in python, translate into .NET, catch in Python try: a.CallVirtual() except ex as e: Assert(e.__class__ == ValueError) Assert(e.args[0] == "hello world") # raise in python, catch in .NET, verify .NET got an ArgumentException try: x = a.CallVirtCatch() except ex as e: Assert(False) Assert(isinstance(x, System.ArgumentException)) # call through the slow paths... try: a.CallVirtualOverloaded('abc') except ex as e: Assert(e.__class__ == ex) Assert(e.args[0] == "hello world") # Note that sys.exc_info() is still set try: a.CallVirtualOverloaded(5) except ex as e: Assert(e.__class__ == ex) Assert(e.args[0] == "hello world") try: a.CallVirtualOverloaded(a) except ex as e: Assert(e.__class__ == ex) Assert(e.args[0] == "hello world") # catch and re-throw (both throw again and rethrow) try: a.CatchAndRethrow() except ex as e: Assert(e.__class__ == ex) Assert(e.args[0] == "hello world") try: a.CatchAndRethrow2() except ex as e: Assert(e.__class__ == ex) Assert(e.args[0] == "hello world") class MyTest(ExceptionsTest): def VirtualFunc(self): self.ThrowException() a = MyTest() # start in python, call CLS which calls Python which calls CLS which raises the exception try: a.CallVirtual() # throws index out of range except IndexError as e: Assert(e.__class__ == IndexError) # verify we can throw arbitrary classes class MyClass: pass try: raise MyClass Assert(False) except MyClass as mc: Assert(mc.__class__ == MyClass) # BUG 430 intern(None) should throw TypeError try: sys.intern(None) Assert(False) except TypeError: pass # /BUG # BUG 393 exceptions throw when bad value passed to except try: try: raise SyntaxError("foo") except 12: Assert(False) pass except SyntaxError: pass # /BUG # BUG 319 IOError not raised. if is_silverlight == False: try: fp = file('thisfiledoesnotexistatall.txt') except IOError: pass # /BUG # verify we can raise & catch CLR exceptions try: raise System.Exception('Hello World') except System.Exception as e: Assert(type(e) == System.Exception) # BUG 481 Trying to pass raise in Traceback should cause an error until it is implemented try: raise StopIteration("BadTraceback")("somedata").with_traceback( "a string is not a traceback") Assert(False, "fell through raise for some reason") except StopIteration: Assert(False) except TypeError: pass try: raise TypeError except: import sys if (sys.exc_info()[2] != None): x = dir(sys.exc_info()[2]) for name in ['tb_frame', 'tb_lasti', 'tb_lineno', 'tb_next']: Assert(name in x, name) try: raise Exception("foo")("Msg").with_traceback( sys.exc_info()[2]) except Exception as X: pass try: raise Exception(3, 4, 5) except Exception as X: AreEqual(X[0], 3) AreEqual(X[1], 4) AreEqual(X[2], 5) try: raise Exception except: import exceptions AreEqual(sys.exc_info()[0], exceptions.Exception) AreEqual(sys.exc_info()[1].__class__, exceptions.Exception) try: Fail("message") except AssertionError as e: import exceptions AreEqual(e.__class__, exceptions.AssertionError) AreEqual(len(e.args), 1) AreEqual(e.args[0], "message") else: Fail("Expected exception")
def test_special_array_creation(): """Test using the Array[<type>] syntax for creating arrays.""" from Python.Test import ISayHello1, InterfaceTest, ShortEnum from System import Array inst = InterfaceTest() value = Array[System.Boolean]([True, True]) assert value[0] is True assert value[1] is True assert value.Length == 2 value = Array[bool]([True, True]) assert value[0] is True assert value[1] is True assert value.Length == 2 value = Array[System.Byte]([0, 255]) assert value[0] == 0 assert value[1] == 255 assert value.Length == 2 value = Array[System.SByte]([0, 127]) assert value[0] == 0 assert value[1] == 127 assert value.Length == 2 value = Array[System.Char]([u'A', u'Z']) assert value[0] == u'A' assert value[1] == u'Z' assert value.Length == 2 value = Array[System.Char]([0, 65535]) assert value[0] == chr(0) assert value[1] == chr(65535) assert value.Length == 2 value = Array[System.Int16]([0, 32767]) assert value[0] == 0 assert value[1] == 32767 assert value.Length == 2 value = Array[System.Int32]([0, 2147483647]) assert value[0] == 0 assert value[1] == 2147483647 assert value.Length == 2 value = Array[int]([0, 2147483647]) assert value[0] == 0 assert value[1] == 2147483647 assert value.Length == 2 value = Array[System.Int64]([0, 9223372036854775807]) assert value[0] == 0 assert value[1] == 9223372036854775807 assert value.Length == 2 value = Array[System.UInt16]([0, 65000]) assert value[0] == 0 assert value[1] == 65000 assert value.Length == 2 value = Array[System.UInt32]([0, 4294967295]) assert value[0] == 0 assert value[1] == 4294967295 assert value.Length == 2 value = Array[System.UInt64]([0, 18446744073709551615]) assert value[0] == 0 assert value[1] == 18446744073709551615 assert value.Length == 2 value = Array[System.Single]([0.0, 3.402823e38]) assert value[0] == 0.0 assert value[1] == 3.402823e38 assert value.Length == 2 value = Array[System.Double]([0.0, 1.7976931348623157e308]) assert value[0] == 0.0 assert value[1] == 1.7976931348623157e308 assert value.Length == 2 value = Array[float]([0.0, 1.7976931348623157e308]) assert value[0] == 0.0 assert value[1] == 1.7976931348623157e308 assert value.Length == 2 value = Array[System.Decimal]([System.Decimal.Zero, System.Decimal.One]) assert value[0] == System.Decimal.Zero assert value[1] == System.Decimal.One assert value.Length == 2 value = Array[System.String](["one", "two"]) assert value[0] == "one" assert value[1] == "two" assert value.Length == 2 value = Array[str](["one", "two"]) assert value[0] == "one" assert value[1] == "two" assert value.Length == 2 value = Array[ShortEnum]([ShortEnum.Zero, ShortEnum.One]) assert value[0] == ShortEnum.Zero assert value[1] == ShortEnum.One assert value.Length == 2 value = Array[System.Object]([inst, inst]) assert value[0].__class__ == inst.__class__ assert value[1].__class__ == inst.__class__ assert value.Length == 2 value = Array[InterfaceTest]([inst, inst]) assert value[0].__class__ == inst.__class__ assert value[1].__class__ == inst.__class__ assert value.Length == 2 value = Array[ISayHello1]([inst, inst]) assert value[0].__class__ == inst.__class__ assert value[1].__class__ == inst.__class__ assert value.Length == 2 inst = System.Exception("badness") value = Array[System.Exception]([inst, inst]) assert value[0].__class__ == inst.__class__ assert value[1].__class__ == inst.__class__ assert value.Length == 2
def testSpecialArrayCreation(self): """Test using the Array[<type>] syntax for creating arrays.""" from Python.Test import ISayHello1, InterfaceTest, ShortEnum from System import Array inst = InterfaceTest() value = Array[System.Boolean]([True, True]) self.assertTrue(value[0] == True) self.assertTrue(value[1] == True) self.assertTrue(value.Length == 2) value = Array[bool]([True, True]) self.assertTrue(value[0] == True) self.assertTrue(value[1] == True) self.assertTrue(value.Length == 2) value = Array[System.Byte]([0, 255]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == 255) self.assertTrue(value.Length == 2) value = Array[System.SByte]([0, 127]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == 127) self.assertTrue(value.Length == 2) value = Array[System.Char]([six.u('A'), six.u('Z')]) self.assertTrue(value[0] == six.u('A')) self.assertTrue(value[1] == six.u('Z')) self.assertTrue(value.Length == 2) value = Array[System.Char]([0, 65535]) self.assertTrue(value[0] == unichr(0)) self.assertTrue(value[1] == unichr(65535)) self.assertTrue(value.Length == 2) value = Array[System.Int16]([0, 32767]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == 32767) self.assertTrue(value.Length == 2) value = Array[System.Int32]([0, 2147483647]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == 2147483647) self.assertTrue(value.Length == 2) value = Array[int]([0, 2147483647]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == 2147483647) self.assertTrue(value.Length == 2) value = Array[System.Int64]([0, long(9223372036854775807)]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == long(9223372036854775807)) self.assertTrue(value.Length == 2) # there's no explicit long type in python3, use System.Int64 instead if not six.PY3: value = Array[long]([0, long(9223372036854775807)]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == long(9223372036854775807)) self.assertTrue(value.Length == 2) value = Array[System.UInt16]([0, 65000]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == 65000) self.assertTrue(value.Length == 2) value = Array[System.UInt32]([0, long(4294967295)]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == long(4294967295)) self.assertTrue(value.Length == 2) value = Array[System.UInt64]([0, long(18446744073709551615)]) self.assertTrue(value[0] == 0) self.assertTrue(value[1] == long(18446744073709551615)) self.assertTrue(value.Length == 2) value = Array[System.Single]([0.0, 3.402823e38]) self.assertTrue(value[0] == 0.0) self.assertTrue(value[1] == 3.402823e38) self.assertTrue(value.Length == 2) value = Array[System.Double]([0.0, 1.7976931348623157e308]) self.assertTrue(value[0] == 0.0) self.assertTrue(value[1] == 1.7976931348623157e308) self.assertTrue(value.Length == 2) value = Array[float]([0.0, 1.7976931348623157e308]) self.assertTrue(value[0] == 0.0) self.assertTrue(value[1] == 1.7976931348623157e308) self.assertTrue(value.Length == 2) value = Array[System.Decimal]( [System.Decimal.Zero, System.Decimal.One]) self.assertTrue(value[0] == System.Decimal.Zero) self.assertTrue(value[1] == System.Decimal.One) self.assertTrue(value.Length == 2) value = Array[System.String](["one", "two"]) self.assertTrue(value[0] == "one") self.assertTrue(value[1] == "two") self.assertTrue(value.Length == 2) value = Array[str](["one", "two"]) self.assertTrue(value[0] == "one") self.assertTrue(value[1] == "two") self.assertTrue(value.Length == 2) value = Array[ShortEnum]([ShortEnum.Zero, ShortEnum.One]) self.assertTrue(value[0] == ShortEnum.Zero) self.assertTrue(value[1] == ShortEnum.One) self.assertTrue(value.Length == 2) value = Array[System.Object]([inst, inst]) self.assertTrue(value[0].__class__ == inst.__class__) self.assertTrue(value[1].__class__ == inst.__class__) self.assertTrue(value.Length == 2) value = Array[InterfaceTest]([inst, inst]) self.assertTrue(value[0].__class__ == inst.__class__) self.assertTrue(value[1].__class__ == inst.__class__) self.assertTrue(value.Length == 2) value = Array[ISayHello1]([inst, inst]) self.assertTrue(value[0].__class__ == inst.__class__) self.assertTrue(value[1].__class__ == inst.__class__) self.assertTrue(value.Length == 2) inst = System.Exception("badness") value = Array[System.Exception]([inst, inst]) self.assertTrue(value[0].__class__ == inst.__class__) self.assertTrue(value[1].__class__ == inst.__class__) self.assertTrue(value.Length == 2)
def test_pickling_exceptions(): exc = System.Exception("test") dumped = pickle.dumps(exc) loaded = pickle.loads(dumped) assert exc.args == loaded.args
def test_unified_exception_semantics(): """Test unified exception semantics.""" e = System.Exception('Something bad happened') assert isinstance(e, Exception) assert isinstance(e, System.Exception)
pass except SyntaxError: pass # /BUG # BUG 319 IOError not raised. if is_silverlight==False: try: fp = file('thisfiledoesnotexistatall.txt') except IOError: pass # /BUG # verify we can raise & catch CLR exceptions try: raise System.Exception('Hello World') except System.Exception, e: Assert(type(e) == System.Exception) # BUG 481 Trying to pass raise in Traceback should cause an error until it is implemented try: raise StopIteration("BadTraceback"), "somedata", "a string is not a traceback" Assert (False, "fell through raise for some reason") except StopIteration: Assert(False) except TypeError: pass try:
def execute(masterForm): ofg = System.Windows.Forms.OpenFileDialog() ofg.RestoreDirectory = True ofg.Filter = "所有 Excel 文件|*.xls;*.xlsx;*.xml|Excel 97-2003 文件|*.xls|Excel 2007 文件|*.xlsx|XML 文件|*.xml" if (ofg.ShowDialog() == System.Windows.Forms.DialogResult.OK): try: dts = Feng.Utils.ExcelHelper.ReadExcel(ofg.FileName) if (dts.Count == 0): raise Feng.InvalidUserOperationException("Excel中无数据!") dt = dts[0] if (dt.Columns.Count != 13): raise Feng.InvalidUserOperationException("文件栏目格式不符,请查证!") dzd = masterForm.DisplayManager.CurrentItem dao = Hd.Model.业务费用Dao() errorDt = dt.Clone() for row in dt.Rows: with Feng.ServiceProvider.GetService[Feng.IRepositoryFactory]( ).GenerateRepository[Hd.Model.Jk.进口票]() as rep: try: tdh = row[3].ToString() if (System.String.IsNullOrEmpty(tdh) or tdh == '提单号'): continue rep.BeginTransaction() item = Hd.Model.业务费用() item.票 = rep.Session.CreateCriteria[Hd.Model.Jk.进口票]() \ .Add(NHibernate.Criterion.Expression.Eq("提单号", tdh)) \ .UniqueResult[Hd.Model.Jk.进口票]() item.费用实体 = item.票 if (item.票 == None): raise eng.InvalidUserOperationException("提单号" + tdh + "不存在!") xh = row[0] item.箱 = rep.Session.CreateCriteria[Hd.Model.Jk.进口箱]() \ .Add(NHibernate.Criterion.Expression.Eq("箱号", xh)) \ .Add(NHibernate.Criterion.Expression.Eq("票", item.票)) \ .UniqueResult[Hd.Model.Jk.进口箱]() if (item.箱 == None): raise eng.InvalidUserOperationException("箱号" + xh + "不存在!") item.箱Id = item.箱.ID fyxs = ('127', '127', '127', '161', '162') for i in range(0, 5, 1): item2 = Hd.Model.业务费用() item2.金额 = Feng.Utils.ConvertHelper.ToDecimal( row[8 + i]) if (item2.金额 == None): continue item2.票 = item.票 item2.费用实体 = item.费用实体 item2.箱 = item.箱 item2.箱Id = item.箱Id item2.费用项编号 = fyxs[i] item2.收付标志 = Hd.Model.收付标志.付 item2.相关人编号 = "900005" item2.对账单 = dzd dao.Save(rep, item2) dzd.费用.Add(item2) rep.CommitTransaction() except System.Exception, ex: rep.RollbackTransaction() errorDt.ImportRow(row) Feng.ServiceProvider.GetService[ Feng.IExceptionProcess]().ProcessWithNotify( System.Exception('提单号' + tdh + '数据有问题,请查证!', ex)) masterForm.ControlManager.OnCurrentItemChanged() if (errorDt.Rows.Count > 0): errorFileName = System.IO.Path.GetDirectoryName(ofg.FileName) + '\\' + \ System.IO.Path.GetFileName(System.IO.Path.ChangeExtension(System.IO.Path.GetTempFileName(), ".xml")) Feng.Utils.ExcelXmlHelper.WriteExcelXml( errorDt, errorFileName) Feng.MessageForm.ShowInfo("请查看错误文件" + errorFileName) except System.Exception, ex: Feng.ServiceProvider.GetService[ Feng.IExceptionProcess]().ProcessWithNotify(ex)
def execute(masterForm): ofg = System.Windows.Forms.OpenFileDialog() ofg.RestoreDirectory = True ofg.Filter = "所有 Excel 文件|*.xls;*.xlsx;*.xml|Excel 97-2003 文件|*.xls|Excel 2007 文件|*.xlsx|XML 文件|*.xml" if (ofg.ShowDialog() == System.Windows.Forms.DialogResult.OK): try: dts = Feng.Utils.ExcelHelper.ReadExcel(ofg.FileName) if (dts.Count == 0): raise Feng.InvalidUserOperationException("Excel中无数据!") dt = dts[0] if (not dt.Columns.Contains("提单编号") or not dt.Columns.Contains("箱号") or not dt.Columns.Contains("费用类型") \ or not dt.Columns.Contains("免费天数") or not dt.Columns.Contains("币种") or not dt.Columns.Contains("实际金额")): raise Feng.InvalidUserOperationException( "文件中必须要有提单编号、箱号、费用类型、币种、实际金额栏,请查证!") dzd = masterForm.DisplayManager.CurrentItem dao = Hd.Model.业务费用Dao() errorDt = dt.Clone() for row in dt.Rows: with Feng.ServiceProvider.GetService[Feng.IRepositoryFactory]( ).GenerateRepository[Hd.Model.Jk.进口票]() as rep: try: moeny = Feng.Utils.ConvertHelper.ToDecimal(row["实际金额"]) #if (moeny == 0): # continue; rep.BeginTransaction() item = Hd.Model.业务费用() item.票 = rep.Session.CreateCriteria[Hd.Model.Jk.进口票]() \ .Add(NHibernate.Criterion.Expression.Eq("提单号", row["提单编号"])) \ .UniqueResult[Hd.Model.Jk.进口票]() item.费用实体 = item.票 if (item.票 == None): raise eng.InvalidUserOperationException( "提单号" + row["提单编号"].ToString() + "不存在!") item.箱 = rep.Session.CreateCriteria[Hd.Model.Jk.进口箱]() \ .Add(NHibernate.Criterion.Expression.Eq("箱号", row["箱号"])) \ .Add(NHibernate.Criterion.Expression.Eq("票", item.票)) \ .UniqueResult[Hd.Model.Jk.进口箱]() if (item.箱 == None): raise eng.InvalidUserOperationException( "箱号" + row["箱号"].ToString() + "不存在!") item.箱Id = item.箱.ID if (row["费用类型"].ToString() == "XXF"): item.费用项编号 = "165" elif (row["费用类型"].ToString() == "ZX"): item.费用项编号 = "167" else: raise Feng.InvalidUserOperationException( "费用类型不能是" + row["费用类型"].ToString() + "!") #if (row["免费天数"] != System.DBNull.Value && row["免费天数"] != null): # item.箱.最终免箱天数 = int(row["免费天数"]); # rep.Update(item.箱); item.收付标志 = Hd.Model.收付标志.付 item.相关人编号 = "900010" if (row["币种"].ToString() == "RMB"): item.金额 = Feng.Utils.ConvertHelper.ToDecimal( row["实际金额"]) elif (row["币种"].ToString() == "USD"): item.金额 = 7 * Feng.Utils.ConvertHelper.ToDecimal( row["实际金额"]) else: raise Feng.InvalidUserOperationException( "币种不能是" + row["币种"].ToString() + "!") item.对账单 = dzd dao.Save(rep, item) dzd.费用.Add(item) rep.CommitTransaction() except System.Exception, ex: rep.RollbackTransaction() errorDt.ImportRow(row) Feng.ServiceProvider.GetService[ Feng.IExceptionProcess]().ProcessWithNotify( System.Exception( '提单号' + row["提单编号"] + '数据有问题,请查证!', ex)) masterForm.ControlManager.OnCurrentItemChanged() if (errorDt.Rows.Count > 0): errorFileName = System.IO.Path.GetDirectoryName(ofg.FileName) + '\\' + \ System.IO.Path.GetFileName(System.IO.Path.ChangeExtension(System.IO.Path.GetTempFileName(), ".xml")) Feng.Utils.ExcelXmlHelper.WriteExcelXml( errorDt, errorFileName) Feng.MessageForm.ShowInfo("请查看错误文件" + errorFileName) except System.Exception, ex: Feng.ServiceProvider.GetService[ Feng.IExceptionProcess]().ProcessWithNotify(ex)
def test_interop(self): self.load_iron_python_test() from IronPythonTest import ExceptionsTest import System import sys a = ExceptionsTest() try: a.ThrowException() # throws index out of range except IndexError as e: self.assertTrue(e.__class__ == IndexError) class MyTest(ExceptionsTest): def VirtualFunc(self): raise ex("hello world") ex = ValueError a = MyTest() # raise in python, translate into .NET, catch in Python try: a.CallVirtual() except ex as e: self.assertTrue(e.__class__ == ValueError) self.assertTrue(e.args[0] == "hello world") # raise in python, catch in .NET, verify .NET got an ArgumentException try: x = a.CallVirtCatch() except ex as e: self.assertTrue(False) self.assertTrue(isinstance(x, System.ArgumentException)) # call through the slow paths... try: a.CallVirtualOverloaded('abc') except ex as e: self.assertTrue(e.__class__ == ex) self.assertTrue(e.args[0] == "hello world") # Note that sys.exc_info() is still set try: a.CallVirtualOverloaded(5) except ex as e: self.assertTrue(e.__class__ == ex) self.assertTrue(e.args[0] == "hello world") try: a.CallVirtualOverloaded(a) except ex as e: self.assertTrue(e.__class__ == ex) self.assertTrue(e.args[0] == "hello world") # catch and re-throw (both throw again and rethrow) try: a.CatchAndRethrow() except ex as e: self.assertTrue(e.__class__ == ex) self.assertTrue(e.args[0] == "hello world") try: a.CatchAndRethrow2() except ex as e: self.assertTrue(e.__class__ == ex) self.assertTrue(e.args[0] == "hello world") class MyTest(ExceptionsTest): def VirtualFunc(self): self.ThrowException() a = MyTest() # start in python, call CLS which calls Python which calls CLS which raises the exception try: a.CallVirtual() # throws index out of range except IndexError as e: self.assertEqual(e.__class__, IndexError) # verify we can raise & catch CLR exceptions try: raise System.Exception('Hello World') except System.Exception as e: self.assertEqual(type(e), System.Exception)
#Get the source from the first page if debug: print "Getting first page source" worker.ReportProgress(1, "Retrieving first page source") if worker.CancellationPending: e.Cancel = True return global first_page_source first_page_source = PageSource() result = first_page_source.get_source(first_page_uri) if result == False: raise System.Exception(first_page_source._exception.Message, first_page_source._exception) if print_source: print first_page_source._source #Get the source from the second page worker.ReportProgress(2, "Retrieving second page source") if debug: print "Getting second page source" if worker.CancellationPending: e.Cancel = True return global second_page_source second_page_source = PageSource() result = second_page_source.get_source(second_page_uri)