Netcore provides comprehensive error handling mechanisms at all layers.
import logging
# Configure logging level
logging.getLogger("netcore").setLevel(logging.DEBUG)
# Add custom handler
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
def recv_func(size):
try:
return device.read(size)
except ConnectionError:
logger.error("Connection lost")
raise
except Exception as e:
logger.error(f"Read error: {e}")
return b''
@endpoint.route("example")
def handle_example():
try:
result = process_data(request.data)
return Response("example", result)
except ValueError as e:
logger.warning(f"Invalid data: {e}")
return Response("error", {"error": str(e)})
except Exception as e:
logger.error(f"Processing error: {e}")
return Response("error", {"error": "Internal error"})