在Python中,有一个有用的异常处理代码:
try:
# Code that could raise an exception
except Exception:
# Exception handling
else:
# Code to execute if the try block DID NOT fail
Run Code Online (Sandbox Code Playgroud)
我认为能够将可能引发的代码与普通代码分开是很有用的.在Python中,这可能如上所示,但是我在C#中找不到类似的东西.
假设该特征或类似特征不存在,将标准代码放入try块中或块之后是标准做法catch吗?
我问的原因是因为我有以下代码:
if (!IsReadOnly)
{
T newobj;
try
{
newobj = DataPortal.Update<T>(this);
List<string> keys = new List<string>(BasicProperties.Keys);
foreach (string key in keys)
{
BasicProperties[key] = newobj.BasicProperties[key];
}
}
catch (DataPortalException)
{
// TODO: Implement DataPortal.Update<T>() recovery mechanism
}
}
Run Code Online (Sandbox Code Playgroud)
这需要普通代码在try块中,否则如果引发异常并随后处理,newobj则会被取消分配,但是在try块中有这么多代码并且与之无关,这感觉非常不自然DataPortalException.该怎么办?
谢谢
我正在为Seesmic Desktop 2编写一个插件,这是我第一次使用Silverlight,我有一个问题:
编写Windows应用程序时,我们有应用程序配置文件,例如用于存储配置值的MyApp.exe.config,对于Web,我们有Web.config.对于Silverlight,似乎没有相同的东西.好吧,有不一样的激励,因为你必须解压缩.xap包来访问它,但即便如此......
我的问题是我有数据,例如JSON web服务enpoint URI,我觉得直接嵌入代码中感到不舒服,因为它们通常会进入.config文件.对于SL,有没有相同的方法?
我一直在阅读Rockford Lhotka的"Expert C#2008 Business Objects",其中有一个数据门户网站可以很好地抽象出数据的来源.当使用DataPortal.Update(this)时,正如您可能猜测的那样,将"this"持久存储到数据库中,将返回一个对象 - 持久化的"this"以及db对其所做的任何更改,例如.时间戳.
Lhotka经常写得非常随意,你必须确保将对旧对象的所有引用更新为新返回的对象.有道理,但有没有一种简单的方法来查找旧对象的所有引用并更改它们?GC显然跟踪参考文献,是否可以利用它?
干杯
rootDirs文件的元素将tsconfig.json多个物理目录合并到一个虚拟目录中。
这适用于相对导入,因此具有以下文件/文件夹结构
src/
main/
file.tstest/
file.test.ts以及以下内容tsconfig.json
{
"compilerOptions": {
"rootDirs": [
"src/main",
"src/test"
],
"moduleResolution": "node"
}
}
Run Code Online (Sandbox Code Playgroud)
并进行以下导入file.test.ts
import { something } from "./file"
Run Code Online (Sandbox Code Playgroud)
导入会发现file.ts。
但是,如果我file.test.ts在 Jest 中运行,它会失败并出现以下错误
Cannot find module './file' from 'test/file.test.ts'
Run Code Online (Sandbox Code Playgroud)
Jest / ts-jest 是否支持类似于 TypescriptrootDirs元素的东西?我尝试了该roots元素,但它没有解决问题。
c# ×3
.net ×1
exception ×1
jestjs ×1
python ×1
reference ×1
silverlight ×1
try-catch ×1
ts-jest ×1
typescript ×1