---
title: NSError
framework: foundation
role: symbol
role_heading: Class
path: foundation/nserror
---

# NSError

Information about an error condition including a domain, a domain-specific error code, and application-specific information.

## Declaration

```swift
class NSError
```

## Overview

Overview Objective-C methods can signal an error condition by returning an NSError object by reference, which provides additional information about the kind of error and any underlying cause, if one can be determined. An NSError object may also provide localized error descriptions suitable for display to the user in its user info dictionary. See Error Handling Programming Guide for more information. Methods in Foundation and other Cocoa frameworks most often produce errors in the Cocoa error domain (NSCocoaErrorDomain); error codes for the Cocoa Error Domain are documented in the Foundation Constants. There are also predefined domains corresponding to Mach (NSMachErrorDomain), POSIX (NSPOSIXErrorDomain), and Carbon (NSOSStatusErrorDomain) errors. NSError is “toll-free bridged” with its Core Foundation counterpart, CFError. See Toll-Free Bridging for more information. Subclassing Notes Applications may choose to create subclasses of NSError, for example, to provide better localized error strings by overriding localizedDescription.

## Topics

### Creating Error Objects

- [init(domain:code:userInfo:)](foundation/nserror/init(domain:code:userinfo:).md)

### Getting Error Properties

- [code](foundation/nserror/code.md)
- [domain](foundation/nserror/domain.md)
- [userInfo](foundation/nserror/userinfo.md)

### Getting a Localized Error Description

- [localizedDescription](foundation/nserror/localizeddescription.md)
- [localizedRecoveryOptions](foundation/nserror/localizedrecoveryoptions.md)
- [localizedRecoverySuggestion](foundation/nserror/localizedrecoverysuggestion.md)
- [localizedFailureReason](foundation/nserror/localizedfailurereason.md)

### Providing Error User Info

- [setUserInfoValueProvider(forDomain:provider:)](foundation/nserror/setuserinfovalueprovider(fordomain:provider:).md)
- [userInfoValueProvider(forDomain:)](foundation/nserror/userinfovalueprovider(fordomain:).md)
- [ErrorUserInfoKey](foundation/erroruserinfokey.md)
- [NSError.UserInfoKey](foundation/nserror/userinfokey.md)

### Getting the Error Recovery Attempter

- [recoveryAttempter](foundation/nserror/recoveryattempter.md)
- [NSErrorRecoveryAttempting](foundation/nserrorrecoveryattempting.md)

### Displaying a Help Anchor

- [helpAnchor](foundation/nserror/helpanchor.md)

### Supporting Types

- [ErrorPointer](foundation/errorpointer.md)
- [NSErrorPointer](foundation/nserrorpointer.md)
- [NSErrorDomain](foundation/nserrordomain.md)

### Error Domains

- [NSCocoaErrorDomain](foundation/nscocoaerrordomain.md)
- [NSPOSIXErrorDomain](foundation/nsposixerrordomain.md)
- [NSOSStatusErrorDomain](foundation/nsosstatuserrordomain.md)
- [NSMachErrorDomain](foundation/nsmacherrordomain.md)
- [NSURLErrorDomain](foundation/nsurlerrordomain.md)
- [NSStreamSOCKSErrorDomain](foundation/nsstreamsockserrordomain.md)
- [NSStreamSocketSSLErrorDomain](foundation/nsstreamsocketsslerrordomain.md)

### Error Codes

- [CocoaError](foundation/cocoaerror.md)
- [MachError](foundation/macherror.md)
- [POSIXError](foundation/posixerror.md)
- [NSError Codes](foundation/1448136-nserror-codes.md)

### Initializers

- [init()](foundation/nserror/init().md)
- [init(coder:)](foundation/nserror/init(coder:).md)

### Instance Properties

- [underlyingErrors](foundation/nserror/underlyingerrors.md)

### Type Methods

- [fileProviderErrorForCollision(with:)](foundation/nserror/fileprovidererrorforcollision(with:).md)
- [fileProviderErrorForNonExistentItem(withIdentifier:)](foundation/nserror/fileprovidererrorfornonexistentitem(withidentifier:).md)
- [fileProviderErrorForRejectedDeletion(of:)](foundation/nserror/fileprovidererrorforrejecteddeletion(of:).md)
- [new()](foundation/nserror/new().md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Error](swift/error.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### User-Relevant Errors

- [Error](swift/error.md)
- [LocalizedError](foundation/localizederror.md)
- [RecoverableError](foundation/recoverableerror.md)
- [CustomNSError](foundation/customnserror.md)
