Inheritance: System.Exception
示例#1
0
		public static CFException FromCFError (IntPtr cfErrorHandle, bool release)
		{
			if (cfErrorHandle == IntPtr.Zero)
				throw new ArgumentException ("cfErrorHandle must not be null.", "cfErrorHandle");

			var e = new CFException (
					ToString (CFErrorCopyDescription (cfErrorHandle)),
					(NSString) Runtime.GetNSObject (CFErrorGetDomain (cfErrorHandle)),
					CFErrorGetCode (cfErrorHandle),
					ToString (CFErrorCopyFailureReason (cfErrorHandle)),
					ToString (CFErrorCopyRecoverySuggestion (cfErrorHandle)));

			var cfUserInfo = CFErrorCopyUserInfo (cfErrorHandle);
			if (cfUserInfo != IntPtr.Zero) {
				using (var userInfo = new NSDictionary (cfUserInfo)) {
					foreach (var i in userInfo)
						e.Data.Add (i.Key, i.Value);
				}
			}
			if (release)
				CFType.Release (cfErrorHandle);
			return e;
		}