fork download
  1. object Main {
  2. def main(args: Array[String]): Unit = {
  3. println(connect())
  4. }
  5.  
  6. class IdInfo
  7. class PasswordInfo
  8. class ConnectionInfo
  9.  
  10. class IOException extends RuntimeException
  11. class AuthorizationException extends RuntimeException
  12.  
  13. def calcIdInfo(): IdInfo = new IdInfo
  14. def calcPwdInfo(id: IdInfo): PasswordInfo = new PasswordInfo
  15. def calcConnInfo(id: IdInfo, pwd: PasswordInfo): ConnectionInfo = new ConnectionInfo
  16. def verify(id:IdInfo, pwd: PasswordInfo, conn: ConnectionInfo): Unit = ()
  17.  
  18. def connect(): (IdInfo, PasswordInfo, ConnectionInfo) = {
  19. var idInfo: IdInfo = null
  20. var pwdInfo: PasswordInfo = null
  21. var connInfo: ConnectionInfo = null
  22.  
  23. try {
  24. idInfo = calcIdInfo()
  25. } catch {
  26. case ex: IOException => return null
  27. }
  28.  
  29. try {
  30. pwdInfo = calcPwdInfo(idInfo)
  31. } catch {
  32. case ex: AuthorizationException => return null
  33. }
  34.  
  35. try {
  36. connInfo = calcConnInfo(idInfo, pwdInfo)
  37. } catch {
  38. case ex: IOException => return null
  39. }
  40.  
  41. try {
  42. verify(idInfo, pwdInfo, connInfo)
  43. } catch {
  44. case ex: IOException => return null
  45. case ex: AuthorizationException => return null
  46. }
  47.  
  48. (idInfo, pwdInfo, connInfo)
  49. }
  50. }
Success #stdin #stdout 0.38s 382016KB
stdin
Standard input is empty
stdout
(Main$IdInfo@9a7754,Main$PasswordInfo@1105002,Main$ConnectionInfo@1f4d7c0)