目录
private void sormeMethod()
{
try
{
//需要得体地进行恢复和/或清理的代码放在这里
}
catch (Invalid0perationException)
{
//从Invalid0perationException恢复的代码放在这里)
}
catch (IOException)
{
//从IOException恢复的代码放在这里
}
catch
{
//从除了上述异常之外的其他所有异常恢复的代码放在这里
//如果什么异常都捕捉,通常要重新抛出异常。本章稍后将详细解释
throw ;
}
finally
{
//这里的代码对始于try块的任何操作进行清理
//这里的代码总是执行,不管是不是抛出了异常
}
//如果try块没有抛出异常,或者某个catch 块捕捉到异常,但没有抛出或
//重新抛出异常,就执行下面的代码
}
有System.Exception类型的公共属性
public static class contract
{
//前条件方法: [ conditional ("CONTRACTS_FULL")]
public static void Requires (Boolean condition) ;
public static void EndContractBlock () ;
//前条件:Always
public static void Requires<1Exoeption>(Boolean condition)where TExoeption : Exoeption;
//后条件方法: [conditional ("CONTRACTS_FULL")]
public static void Ensures (Boolean condition ) ;
public static void EnsuresonThrow<TException>(Boolean condition)
where TException : Exception;
//特殊后条件方法: Always
public static T Result<T> () ;
public static T oldvalue<T>(T value) ;
public static T valueAtReturn<T>(out T value) ;
//对象不变性方法: [ conditional ("CONTRACTS_FULL") ]
public static void Invariant (Boolean condition) ;
//限定符(Quantifier)方法:Always
public static Boolean Exists<T>(IEnumerable<T> collection,Predicate<T> predicate);
public static Boolean Exists(Int32 fromInclusive,Int32 toExclusive,Predicate<Int32> predicate) ;
public static Boolean ForAll<T>(IEnumerable<T> collection,Predicate<T> predicate);
public static Boolean ForAll(Int32 fromInclusive,Int32 toExclusive,Predicate<Int32> predicate) ;
//辅助(Helper)方法[Conditional ("CONTRACTS_FULL")]或[Conditional ("DEBUG")]
public static void Assert (Boolean condition) ;
public static void Assume (Boolean condition) ;
//基础结构(Infrastructure)事件:你的代码一般不使用这个事件
public static event EventHandler<ContractFailedEventArgs> ContractFailed;
}