Abstract:This paper presents an overview of a quantum programming language NDQJava-2. NDQJava-2 is an extension of NDQJava with additional quantum components such as quantum conditional statement, quantum loop statement, quantum subprogram, quantum module, and quantum exception handling mechanism. The added commponents make NDQJava-2 a structured quantum programming language. Experience in writing quantum programs indicates that compared with NDQJava, NDQJava-2 is a more practical, more readable and more suitable (components setting) quantum programming language.