 
 - parameter executable: path to an executable file.
 - parameter args: arguments to the executable.
-- throws: a ShellError if the return code is anything but 0, or ‘executable’ could not be run.
+- throws: `ShellError.ReturnedErrorCode (command: String, errorcode: Int32)` if the exit code is anything but 0.
+
+	`ShellError.InAccessibleExecutable (path: String)` if 'executable’ turned out to be not so executable after all.
 */
 public func runAndPrint (executable: String, _ args: Any ...) throws {
 	return try main.runAndPrint(executable, args)

	/**
	Wait until task is finished.

	- throws: ShellError.ReturnedErrorCode if exit code is not zero.
	*/
	public func finish() throws {
		self.waitUntilExit()

	Wait for this shell task to finish.

	- returns: itself
	- throws: `ShellError.ReturnedErrorCode (command: String, errorcode: Int32)` if the exit code is anything but 0.
	*/
	public func finish() throws -> AsyncShellTask {
		try task.finish()
