Netcore

Error Handling

Overview

Netcore provides comprehensive error handling mechanisms at all layers.

Logging System

Configuration

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)

Error Types

Protocol Errors

Transport Errors

Application Errors

Implementation Examples

Transport Layer Error Handling

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''

Application Layer Error Handling

@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"})