एक logic error (या logical error) एक mistake होता है एक program के source code में जिससे की परिणाम में गलती या unexpected बर्ताव देखने को मिलती है. ये एक प्रकार का runtime error होता है जिससे की simply गलत output पैदा होता है या इससे एक program crash भी हो सकता है जब वो चल रहा हो.
बहुत से अलग अलग प्रकार के programming mistakes से logic errors पैदा हो सकते हैं. उदाहरण के लिए, एक गलत variable को एक value प्रदान करना जिससे की काफी सारे unexpected program errors पैदा हो सकते हैं. जहाँ पर दो संख्या को add करने की जरुरत हो वहीँ उन्हें multiply करने से भी उलटी परिणाम देखने को मिल सकती है.
वहीँ छोटे typos जो की syntax errors पैदा नहीं करते हैं, उनसे भी logic errors हो सकते हैं. नीचे एक PHP code उदाहरण के तोर पर बताई गयी है, इसमें if statement एक logic error पैदा कर सकता है क्यूंकि इसमें single equal sign (=) के स्थान पर एक double equal sign (==) होना चाहिए जिससे logic error पैदा होता है.
Incorrect: if ($i=1) { … }
Correct: if ($i==1) { … }
PHP की भाषा में, “==” का अर्थ होता है “is equal to,” वहीँ “=” का अर्थ होता है “बनना”. ऐसे में गलत if statement हमेशा TRUE ही return करता है, चूँकि 1 assign करना variable $i को return करता है एक TRUE value. वहीँ एक correct code में, if statement केवल return करता है TRUE अगर $i समान हो 1 से.
चूँकि यहाँ पर इस गलत code की syntax को accept कर लिया जायेगा, ऐसे में ये किसी भी प्रकार का syntax error पैदा नहीं करेगा और code आसानी से compile successfully भी हो जायेगा. यहाँ पर logic error देखा जा सकता है runtime के दौरान. चूँकि logic errors अक्सर छुप जाता है source code में ही, इसलिए इन्हें खोज पाना काफी कठिन होता है और साथ में debug करना भी Syntax Errors की तुलना में.