我是 Ruby 的新手,来自 Java 世界。
我只想在 Ruby 中复制一个文件:http: //apidock.com/ruby/FileUtils/cp
但是,文档没有说明会引发哪些异常。与 Javadocs 比较:
如果不查看 FileUtils 的源代码,有没有办法判断哪些异常可能会引发?
我是 Ruby 的新手,来自 Java 世界。
我只想在 Ruby 中复制一个文件:http: //apidock.com/ruby/FileUtils/cp
但是,文档没有说明会引发哪些异常。与 Javadocs 比较:
如果不查看 FileUtils 的源代码,有没有办法判断哪些异常可能会引发?
无法保证在 Ruby 中会引发哪个异常。用户可以发送中断,您的文件系统可能无法写入,等等。Ruby 对此不做任何保证。但是对于文件操作,我可能会从 IOError 及其子项 EOFError 开始。
这可能会提供处理非异常(合理预期)事件的能力,例如文件不存在,或没有读取访问权限或没有写入访问权限,这些事情您可以编程,并救援和尝试处理。
您还可以编写自己的异常,引发自定义异常(可能继承 StandardError)并提供适当的操作或反馈。
这是刚刚从我的计算机使用 Ruby 1.9.3-p327 生成的当前异常层次结构
BasicObject
Exception
NoMemoryError
ScriptError
LoadError
Gem::LoadError
NotImplementedError
SyntaxError
SecurityError
SignalException
Interrupt
StandardError
ArgumentError
EncodingError
Encoding::CompatibilityError
Encoding::ConverterNotFoundError
Encoding::InvalidByteSequenceError
Encoding::UndefinedConversionError
FiberError
IOError
EOFError
IndexError
KeyError
StopIteration
LocalJumpError
Math::DomainError
NameError
NoMethodError
RangeError
FloatDomainError
RegexpError
RuntimeError
Gem::Exception
Gem::CommandLineError
Gem::DependencyError
Gem::DependencyRemovalException
Gem::DocumentError
Gem::EndOfYAMLException
Gem::FilePermissionError
Gem::FormatException
Gem::GemNotFoundException
Gem::GemNotInHomeException
Gem::InstallError
Gem::InvalidSpecificationException
Gem::OperationNotSupportedError
Gem::RemoteError
Gem::RemoteInstallationCancelled
Gem::RemoteInstallationSkipped
Gem::RemoteSourceException
Gem::VerificationError
SystemCallError
ThreadError
TypeError
ZeroDivisionError
SystemExit
Gem::SystemExitException
SystemStackError
fatal