D365 FO异常处理
关于X++最新版本异常处理都在下面这篇文章里讲得很清楚了
https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-exceptions
我觉得比AX2012最大的改进
1.增加了finally支持
这让X++更接近主流语言的语法,之前的try catch,少了finally,总感觉少了点什么,虽然用不用是一回事,有没有又是另一回事。
2.捕获.NET异常
D365 Update31之后的版本,可以直接捕获.NET类型的异常了,这个是个非常不错的改进,再也不用诡异的先Catch Exeception::CLRError,再用CLRInterop::GetLastException这样的语法来处理.NET异常了。
1 System.Exception ex; 2 3 try 4 { 5 throw new System.Exception("Hello,Exception"); 6 } 7 catch (ex) 8 { 9 info (ex.Message); 10 }
目前的版本(10.0.0.10)Exception还不能直接在Catch中定义。
1 try 2 { 3 throw new System.Exception("Hello,Exception"); 4 } 5 catch (System.Exception ex) 6 { 7 info (ex.Message); 8 }
这样写,会报一个莫名其妙的缺少),随着版本的迭代,这个问题应该会解决掉。