0

“应用程序域提供的隔离具有以下好处:

一个应用程序中的故障不会影响其他应用程序。因为类型安全代码不会导致内存故障,所以使用应用程序域可以确保在一个域中运行的代码不会影响进程中的其他应用程序。”## http://msdn.microsoft.com/en-us/library/2bh4z9hs.aspx

以上文字来自The MSDN,

我的问题是,

1、句子中的“Faults”是指异常,还是别的什么?

2,什么是“一个应用程序中的故障不能影响其他应用程序”是什么意思?,是不是意味着如果一个应用程序域中抛出异常,该异常不会导致其他应用程序域崩溃,对吗?能给我举个例子 ?

4

1 回答 1

0

这篇文章谈到了内存隔离。与 C/C++ 不同,托管代码不能任意修改内存(没有unsafe),因此在一个 AppDomain 中运行的托管代码不会损坏其他 AppDomain 中的内存。即托管运行时可以防止缓冲区溢出类型的错误,同时在 C/C++ 中很容易实现,例如int arr[4]; arr[-1]=2;.

异常不限于 AppDomain(或者更确切地说,在有/没有 AppDomain 的情况下行为相似) - 大多数异常只会影响调用引发异常的方法的代码,默认情况下,一些(即 StackOverflow)将终止进程。如果正常异常未处理,通常会导致进程终止。如果堆栈上的代码指向多个 AppDomain,则异常可以自由地跨越 AppDomain 边界。

于 2012-10-08T06:32:59.067 回答