Thanks Massimo. The exception works fine, but the problem raised when calling a grid. Didn't realize it's not possible to connect to another session within the "except" segment. Seems that code has to be outside. Still learning python here :)
db.py ----- try: from gluon.contrib.memcache import MemcacheClient memcache_servers = ['127.0.0.1:11211'] cache.memcache = MemcacheClient(request, memcache_servers) cache.ram = cache.disk = cache.memcache from gluon.contrib.memdb import MEMDB session.connect(request,response,db=MEMDB(cache.memcache)) except Exception: session.connect(request, response, db=db) # doesn't work pass # had to do it this way, and then all works as expected if not session: session.connect(request, response, db=db) db.define_table('mytable',Field('myfield','string')) default.py ---------- def gr(): q = (db.mytable.id>0) grid=SQLFORM.grid(q) return dict() On Monday, December 24, 2012 5:11:17 PM UTC-5, Massimo Di Pierro wrote: > > Can you try replace: > > except: > > with > > except Exception: > > On Monday, 24 December 2012 10:04:08 UTC-6, Adi wrote: >> >> Tried catching the exception when memcache is not available to switch to >> db caching, but getting an excepting. >> >> Should it be possible to catch this exception, ignore it and continue >> running? >> >> Thanks, >> Adnan >> >> >> try: >> from gluon.contrib.memcache import MemcacheClient >> memcache_servers = ['127.0.0.1:11211'] >> cache.memcache = MemcacheClient(request, memcache_servers) >> cache.ram = cache.disk = cache.memcache >> from gluon.contrib.memdb import MEMDB >> session.connect(request,response,db=MEMDB(cache.memcache)) >> except: >> sys.exc_clear() >> session.connect(request, response, db=db) >> pass >> >> >> >> Traceback (most recent call last): >> File "/Users/adnan/web2py24/gluon/main.py", line 557, in wsgibase >> session._try_store_in_db(request, response) >> File "/Users/adnan/web2py24/gluon/globals.py", line 739, in_try_store_in_db >> record_id = table.insert(**dd) >> File "/Users/adnan/web2py24/gluon/contrib/memdb.py", line 256, in insert >> id = self._create_id() >> File "/Users/adnan/web2py24/gluon/contrib/memdb.py", line 296, in_create_id >> raise Exception('cannot set memcache') >> Exception: cannot set memcache >> >> >> >> Frames >> >> >> >> File /Users/adnan/web2py24/gluon/main.py in wsgibase at line 557 code >> arguments variables >> >> >> >> File /Users/adnan/web2py24/gluon/globals.py in _try_store_in_db at line >> 739 code arguments variables >> >> >> >> File /Users/adnan/web2py24/gluon/contrib/memdb.py in insert at line 256code >> arguments variables >> >> >> >> File /Users/adnan/web2py24/gluon/contrib/memdb.py in _create_id at line >> 296 code arguments variables >> >> Function argument list >> >> (self=<DALStorage {'client_ip': <gluon.contrib.memdb.F...luon.contrib. >> memdb.Field object at 0x111d554d0>}>) >> >> Code listing >> 291. >> 292. >> <span style="color: #066;" class="styled-by-prettify"... >> Show >> original<https://groups.google.com/group/web2py/msg/dc3f7fc28bb3d0c5?dmode=source&output=gplain&noredirect> >> > --