+1 vote
by (640 points)
edited

Can you add to documentation a specification about exceptions, that methods in your API can throw?

Your exceptions, like SftpException, SshException, ProxySocketException, does not have an one base (like "RebexException") class and this is OK, but writing code is hard: when unknown, what kind of exceptions can be thrown.

1 Answer

+1 vote
by (148k points)
edited
 
Best answer

We do plan to document this in one of the next releases, we are aware that a clear specification would be very helpful.

Anyway, in Rebex SFTP, when working with the main Sftp class, you can generally catch SftpException only - SshExceptions and ProxySocketExceptions should be re-thrown as SftpException with an appropriate Status and an InnerException set to the original exception.

Other than that, methods and properties of all classes can throw ArgumentException and InvalidOperation, but these usually indicate that something is wrong with your code (or our code) and should not be handled unless for logging or error reporting purposes.

The SshPrivateKey class methods might throw CryptographicException when a cryptography-related error occurs.

by (640 points)
Thanks, exceptions really wrapped and this is good. This is my mistake: I was not careful. I thought that when working with Sftp, the ProxySocketException can be handled.
...