首页 文章

J2ObjC:如何从JavaIOIOException获取NSError

提问于
浏览
0

连接到没有网络的服务器时,我需要确定没有互联网异常 . 但是在iOS上我得到 IOException (在Android上例外是 ConnectException ) .

异常消息包含以下错误消息:

Error Domain = NSURLErrorDomain Code = -1009“Internet连接似乎处于脱机状态 . ” UserInfo = {NSUnderlyingError = 0x10bc06330 {Error Domain = kCFErrorDomainCFNetwork Code = -1009“(null)”UserInfo = {_ kCFStreamErrorCodeKey = 50,_kCFStreamErrorDomainKey = 1}},NSErrorFailingURLStringKey = http:// ...,NSErrorFailingURLKey = http:// . ..,_kCFStreamErrorDomainKey = 1,_kCFStreamErrorCodeKey = 50,NSLocalizedDescription = Internet连接似乎处于脱机状态 . }

我可以解析此消息并检查它是否包含 Code=-1009 . 但是,有没有更优雅的方法从 JavaLangException 检查 NSError

1 回答

  • 0

    不幸的是,目前还没有超过NSException的超类,但这导致了比它解决的问题更多的问题 . 为每个iOS网络错误代码定义新的异常类也没有意义,因为这会增加使用j2objc的每个应用程序的大小 . 考虑使用以下内容: if (exception.getMessage().contains("NSURLErrorDomain Code=-1009")) ... 或定义执行此检查的 isConnectionOffline(Exception e) 方法以及用于Android的方法 .

    对于某种NSURLErrorDomain异常包装器,您可以file an enhancement request,这可能会使这些错误更容易破译 . 更好的是,we love contributions如果你想出一些有用的东西 . ;-)

相关问题