A try/catch structure can have either zero or one finally block, and if present, it must be placed after the last catch block. The finally block is optional but when used, there can only be one per try/catch structure. It cannot appear after each catch block individually, nor can there be multiple finally blocks. This ensures clean, predictable structure for cleanup code.