.NET does not have enforced (checked) exceptions like Java, which makes this hard to tell exactly. In general, you should handle exceptions when you can actually do something about them. In addition to FtpException, Rebex FTP/SSL might throw TlsException (on errors related to TLS/SSL) or IOException (on filesystem access errors). Of course, ArgumentException, InvalidOperationException and ObjectDisposedException are possible when appropriate. Other than this, no other exceptions should be thrown by Rebex FTP/SSL (the low level API on Rebex.Common assembly might use other exceptions such as CertificateException or CryptographicException).