in intellij-plugin/educational-core/src/com/jetbrains/edu/learning/network/RetrofitHelperImpl.kt [36:72]
override fun <T> executeCall(call: Call<T>, omitErrors: Boolean): Result<Response<T>, String> {
return try {
val progressIndicator = ProgressManager.getInstance().progressIndicator
val response = if (progressIndicator != null) {
ApplicationUtil.runWithCheckCanceled({ call.execute() }, progressIndicator)
}
else {
call.execute()
}
ProgressManager.checkCanceled()
Ok(response)
}
catch (e: InterruptedIOException) {
log("Connection to server was interrupted", e.message, omitErrors)
Err("${EduFormatBundle.message("error.connection.interrupted")}\n\n${e.message}")
}
catch (e: CoursesDownloadingException) {
log("Failed to connect to server", e.message, true)
throw e
}
catch (e: IOException) {
log("Failed to connect to server", e.message, omitErrors)
Err("${EduFormatBundle.message("error.failed.to.connect")} \n\n${e.message}")
}
catch (e: ProcessCanceledException) {
// We don't have to LOG.log or throw ProcessCanceledException:
// 'Control-flow exceptions (like ProcessCanceledException) should never be LOG.logged: ignore for explicitly started processes or...'
call.cancel()
Err("Process canceled by user")
}
catch (e: RuntimeException) {
log("Failed to connect to server", e.message, omitErrors)
Err("${EduFormatBundle.message("error.failed.to.connect")}\n\n${e.message}")
}
}