@@ -266,7 +266,12 @@ def _search_train(
266266 }
267267
268268 r = self ._session .post (url = url , data = data )
269- parser = SRTResponseData (r .text )
269+ try :
270+ parser = SRTResponseData (r .text )
271+ except Exception as e :
272+ raise SRTResponseError (
273+ f"Failed to reserve: invalid response ({ r .text } )"
274+ ) from e
270275
271276 if not parser .success ():
272277 message_code = parser .message_code ()
@@ -299,7 +304,12 @@ def _search_train(
299304 next_dep_time = last_dep_time + timedelta (seconds = 1 )
300305 data ["dptTm" ] = next_dep_time .strftime ("%H%M%S" )
301306 r = self ._session .post (url = url , data = data )
302- parser = SRTResponseData (r .text )
307+ try :
308+ parser = SRTResponseData (r .text )
309+ except Exception as e :
310+ raise SRTResponseError (
311+ f"Failed to reserve: invalid response ({ r .text } )"
312+ ) from e
303313
304314 # When there is no more train, return code will be FAIL
305315 if not parser .success ():
@@ -477,7 +487,12 @@ def _reserve(
477487 )
478488
479489 r = self ._session .post (url = url , data = data )
480- parser = SRTResponseData (r .text )
490+ try :
491+ parser = SRTResponseData (r .text )
492+ except Exception as e :
493+ raise SRTResponseError (
494+ f"Failed to reserve: invalid response ({ r .text } )"
495+ ) from e
481496
482497 if not parser .success ():
483498 raise SRTResponseError (parser .message ())
@@ -550,7 +565,12 @@ def get_reservations(self, paid_only: bool = False) -> list[SRTReservation]:
550565 data = {"pageNo" : "0" }
551566
552567 r = self ._session .post (url = url , data = data )
553- parser = SRTResponseData (r .text )
568+ try :
569+ parser = SRTResponseData (r .text )
570+ except Exception as e :
571+ raise SRTResponseError (
572+ f"Failed to reserve: invalid response ({ r .text } )"
573+ ) from e
554574
555575 if not parser .success ():
556576 raise SRTResponseError (parser .message ())
@@ -598,7 +618,12 @@ def ticket_info(self, reservation: SRTReservation | int) -> list[SRTTicket]:
598618 data = {"pnrNo" : reservation , "jrnySqno" : "1" }
599619
600620 r = self ._session .post (url = url , data = data )
601- parser = SRTResponseData (r .text )
621+ try :
622+ parser = SRTResponseData (r .text )
623+ except Exception as e :
624+ raise SRTResponseError (
625+ f"Failed to reserve: invalid response ({ r .text } )"
626+ ) from e
602627
603628 if not parser .success ():
604629 raise SRTResponseError (parser .message ())
@@ -631,7 +656,12 @@ def cancel(self, reservation: SRTReservation | int) -> bool:
631656 data = {"pnrNo" : reservation , "jrnyCnt" : "1" , "rsvChgTno" : "0" }
632657
633658 r = self ._session .post (url = url , data = data )
634- parser = SRTResponseData (r .text )
659+ try :
660+ parser = SRTResponseData (r .text )
661+ except Exception as e :
662+ raise SRTResponseError (
663+ f"Failed to reserve: invalid response ({ r .text } )"
664+ ) from e
635665
636666 if not parser .success ():
637667 raise SRTResponseError (parser .message ())
0 commit comments