我试图弄清楚RX流如何捕获异常。 特别是,如果我有一个订阅内的订阅和内部订阅从它的observable接收到一个异常,我是否需要处理onError内部订阅,或者我可以在父订阅的onError处理? observableThing1.subscribe({ _ -> observableThing2.subscribe({ _ -> // Something horrible happens here an an exception is throw by observableThing2 }) }, { error -> // Expecting I can handle all errors at the top most subscription })
大多数编程语言没有检查异常(如C#和Kotlin)。 所以,我试图找到一个更好的方法来处理我的项目,而不使用检查的异常。 该项目使用Java,我们控制远程EJB的可能的验证错误。 像这样的东西: lookupSomeRemoteEjb().createCustomer(/** lots of informations */); 这个方法抛出了许多的验证异常,例如: DocumentoAlreadyExistsException(); InvalidNameException(); InvalidBirthDateException(); 等等。 这种例外可能发生在不同级别的不同课程中。 像这样的例子: CustomerRemoteEjb.class // tell to the another system what error happened CustomerService.class //can throw some errors about customer PersonService.class // can throw some errors about person DocumentService.class // can throw some errors about document AddressService.class // can throw some errors […]
为什么这个错误? 09-12 16:36:31.502 1886-1886 / com.getloction.nourmedhat.smartgate.getlocation E / AndroidRuntime:致命异常:主进程:com.getloction.nourmedhat.smartgate.getlocation,PID:1886 kotlin.TypeCastException:null不能在com.google.android.gms.internal.to.zza(未知)上的com.getloction.nourmedhat.smartgate.getlocation.All_Station $ onCreate $ 2.onDataChange(All_Station.kt:56)中将其转换为非null类型的kotlin.String源)在com.google.android.gms.internal.vj.zzHX(未知源)在com.google.android.gms.internal.vp.run(未知源)在android.os.Handler.handleCallback(Handler.java :751)在android.os.Handler.dispatchMessage(Handler.java:95)在android.os.Looper.loop(Looper.java:154)在android.app.ActivityThread.main(ActivityThread.java:6682)在java 。com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1520)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:.zip).lang.reflect.Method.invoke(Native Method) 1410)
我有以下代码,它使用Apache HTTP客户端与外部系统(Capsule CRM)联系。 override fun findPartiesByUrlFragment(urlFragment: String): PartiesSearchResult { val req = HttpGet("https://api.capsulecrm.com/api/v2/parties/search?q=${urlFragment}") req.setHeader("Authorization", "Bearer ${ApiToken}") req.setHeader("Accept", "application/json"); val httpClient = HttpClients.createDefault() val res = httpClient.execute(req) val parser = Parser() val json:JsonObject = parser.parse(res.entity.content) as JsonObject […] // What happens thereafter isn't relevant because most errors are likely to occur in the code above return […]
我在Kotlin制作了一个计算器,而且我在解决while()遇到的问题时遇到了问题。在代码的这个特定部分,我试图找到等式中的第一个运算符,但是我需要排除那些表示数字是否为负数的数字(或正数+ ,可选),这些数字需要在括号之间加以表示: (-5) var charay = charArrayOf('+', '-', '*', '/') var op = 0 var reference = 0 var bol = false while( bol == false && op != -1){ println(op) println(bol) println(bol == false && op != -1) op = input.indexOfAny(charay, reference) if (!input.get(op – 1).equals('(')){ bol = true }else{ reference = op + […]