public final TryStatementContext tryStatement() throws RecognitionException {
		TryStatementContext _localctx = new TryStatementContext(_ctx, getState());
		enterRule(_localctx, 144, RULE_tryStatement);
		int _la;
		try {
			setState(942);
			switch ( getInterpreter().adaptivePredict(_input,114,_ctx) ) {
			case 1:
				enterOuterAlt(_localctx, 1);
				{
				setState(912); match(52);
				setState(913); match(45);
				setState(914); resources();
				setState(915); match(22);
				setState(916); block();
				setState(920);
				_errHandler.sync(this);
				_la = _input.LA(1);
				while (_la==64) {
					{
					{
					setState(917); catchClause();
					}
					}
					setState(922);
					_errHandler.sync(this);
					_la = _input.LA(1);
				}
				setState(925);
				_la = _input.LA(1);
				if (_la==31) {
					{
					setState(923); match(31);
					setState(924); block();
					}
				}

				}
				break;

			case 2:
				enterOuterAlt(_localctx, 2);
				{
				setState(927); match(52);
				setState(928); block();
				setState(940);
				switch (_input.LA(1)) {
				case 64:
					{
					setState(930); 
					_errHandler.sync(this);
					_la = _input.LA(1);
					do {
						{
						{
						setState(929); catchClause();
						}
						}
						setState(932); 
						_errHandler.sync(this);
						_la = _input.LA(1);
					} while ( _la==64 );
					setState(936);
					_la = _input.LA(1);
					if (_la==31) {
						{
						setState(934); match(31);
						setState(935); block();
						}
					}

					}
					break;
				case 31:
					{
					setState(938); match(31);
					setState(939); block();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}