हास्यास्पद रनटाइम त्रुटियाँ [बंद]


40

ऐसे प्रोग्राम लिखें, जो पागल, अस्पष्ट, हास्यास्पद या सिर्फ सादा पौष्टिक रनटाइम त्रुटियों का उत्पादन करते हैं। आवश्यक नहीं है और गोल्फ (लघुता)।

  • समाधान जो दिखते हैं कि उन्हें ठीक काम करना चाहिए, बेहतर है।
  • समाधान जो दिखते हैं कि उन्हें एक तरह से तोड़ना चाहिए लेकिन दूसरे को तोड़ना बेहतर है।
  • जब तक वे कभी-कभी प्रतिलिपि प्रस्तुत करने योग्य नहीं होते हैं, तब तक समाधान जो nondeterministic बेहतर हैं।
  • त्रुटि कारण और अभिव्यक्ति के बीच लंबी दूरी के समाधान बेहतर हैं।
  • उत्पादन त्रुटियों के लिए बोनस अंक जो असंभव होना चाहिए।
  • त्रुटियों के लिए बोनस अंक जो रनटाइम को क्रैश करते हैं (जैसे पायथन सेगमेंट में खराबी) या ऑपरेटिंग सिस्टम।

स्कोर की इकाई upvotes होगी।

परिशिष्ट 1

कंपाइलर दुर्व्यवहार भी ठीक है।


2
पायथन सेगफॉल्ट बनाना आसान है:import sys; sys.setrecursionlimit(~-2**31); x=lambda x:x(x); x(x);
marinus

पीटर: वूप्स। मैंने प्रश्न को आधा लिखने के माध्यम से पुनर्निर्मित किया: S
Wug

... क्या खराबी या इंटरकैल के बारे में? मुझे पूरा यकीन है कि उनके पास कुछ बहुत ही बेहूदा गलतियाँ होंगी, शायद वे एक ही चर के साथ भी कर सकते हैं।
एसोली

1
यह निश्चित रूप से समाधान के लिए जाने के लिए सबसे अच्छी कड़ी है: विध्वंसककॉन्फ़ेल्टर.com / talks / wat :-)
सेरी

1
के संभावित डुप्लिकेट stackoverflow.com/q/1146014/736054
कोनराड बोरोस्की

जवाबों:


69

अनिवार्य PHP एक (जो अभी भी 5.4 के रूप में तय नहीं किया गया है):

<?::

आउटपुट:

पार्स त्रुटि: वाक्यविन्यास त्रुटि, अनपेक्षित T_PAAMAYIM_NEKUDOTAYIM पंक्ति 1 पर

Whaa?


12
मुझे यह पसंद है। यह मेरा पसंदीदा त्रुटि संदेश हो सकता है। एक समय के अलावा मेरे दोस्त ने रिकवरी पार्टीशन के लिए अपने विंडोज़ लैपटॉप को बूट करने की कोशिश की, और इसने पूरी स्क्रीन को विशाल लाल अक्षरों में "ERROR" के साथ एक सफेद बॉक्स में बदल दिया।
खोदा

4
डेलीगेट, लेकिन अजीब फिर भी: "पैमायम नेकुडोटायम, पहले-पहल, एक डबल-कोलोन के नामकरण के लिए एक अजीब विकल्प की तरह प्रतीत होगा। हालांकि, ज़ेंड इंजन 0.5 (जो कि शक्तियां PHP 3) को लिखते समय, यही Zend टीम ने इसे कॉल करने का फैसला किया है। । यह वास्तव में हिब्रू में डबल-कोलोन का मतलब है! " php.net/manual/en/language.oop5.paamayim-nekudotayim.php
जॉन गौथियर

12
@ हँसगेल: हाँ, इसका मतलब हिब्रू में डबल-कोलन है। इसके अलावा हर टोकन के लिए अंग्रेजी का उपयोग करना समझ में आता है क्योंकि ...? मुझे लगता है कि मुझे बस PHP टीम से पूछना होगा।
Ry-

क्षमा करें दोस्त, लेकिन आप बस ''क्लास ''( स्थिर स्ट्रिंग) से स्थिर विधि / चर (खाली स्ट्रिंग) को बुला रहे हैं
इस्माइल मिगुएल

1
@IsmaelMiguel: यह हिब्रू के कारण भ्रमित है, इसलिए नहीं कि यह गलत है।
रय

61

संकलित त्रुटि:

int main()
{
        long long long a;
}

त्रुटि: जीसीसी के लिए लंबा लंबा बहुत लंबा है


6
उन्हें बस पता था कि कोई और long long long, अगर दोनों वैध हैं , तो कोशिश करेंगे । longlong long
कोनराड बोरोस्की

3
मुझे लगता है कि "ए बहुत लंबा है!" एक बेहतर त्रुटि संदेश रहा होगा, लेकिन यह अभी भी एक महान जवाब है।
WUG

52

विंडोज कमांड प्रॉम्प्ट

If you're happy and you know it clap your hands!

आउटपुट:

खुश इस समय अप्रत्याशित था।


1
मैंने परिणाम की जाँच करने के लिए उस आदेश की कोशिश की, लेकिन यह प्रदर्शित हुआ ^V:( कठिन दिन ये
फैब्रिक

8
@ फर्बियो, क्या बस लाइन चिपकाने के लिए CTRL + V दबाने से था? कमांड प्रॉम्प्ट में, पेस्ट के लिए कीबोर्ड "शॉर्टकट" ALT + SPACE, E, P.
हैंड-ई-फ़ूड

42

पीएचपी

$ cat error.php 
<?php
function echo_string(string $string) {
    echo $string;
}
echo_string("Hello, world!");
$ php error.php 
PHP Catchable fatal error:  Argument 1 passed to echo_string() must be an instance of string, string given, called in error.php on line 5 and defined in error.php on line 2

आप किसी फ़ंक्शन को स्ट्रिंग पास नहीं कर सकते, आपको इसके बजाय स्ट्रिंग पास करना होगा!

अद्यतन: यह कोड PHP 7 में कोई त्रुटि नहीं है। क्यों चेक (क्यों कोड काम करता है के बारे में बिगाड़ने वाले शामिल करने के लिए) पर क्लिक करें।

एक नई सुविधा जिसे स्केलर प्रकार की घोषणाओं के रूप में जाना जाता है PHP 7 में जोड़ा गया था। यह सुविधा फ़ंक्शन घोषणाओं में स्केलर प्रकारों का उपयोग करने की अनुमति देती है।


6
क्या च *** php।
WUG

7
PHP वर्ग string(जो मान्य है) प्राप्त करने की कोशिश कर रहा है । टाइप-हिंटिंग (वह चीज़ जो आप कर रहे हैं) केवल कक्षाओं के लिए काम करती है। चूंकि कक्षा stringमौजूद नहीं है, यह एक त्रुटि फेंकता है।
इस्माइल मिगुएल

आप यहाँ अपना काम ठीक से काम कोड जाँच सकते हैं: sandbox.onlinephpfunctions.com/code/…
इस्माइल मिगुएल

2
@IsmaelMiguel: हाँ, मैं समझता हूँ कि ऐसा क्यों होता है, लेकिन त्रुटि अभी भी मेरी राय में हास्यास्पद है।
कोनराड बोरोस्की

1
फिर प्रयास करें array(''=>array()'')
इस्माइल मिगुएल

33

दे घुमा के

$ echo "Hello, world!"
bash: !": event not found

और आपको लगता है कि बैश एक सरल "हैलो, दुनिया को स्वीकार करेगा!" कार्यक्रम।


इसका स्पष्टीकरण: डबल कोट्स में पारित स्ट्रिंग्स को बैश में कार्यक्रमों के तर्क के रूप में विस्तारित किया `echo hi`जाता है , जिसका अर्थ hiडबल-उद्धृत स्ट्रिंग के अंदर होता है। ईवेंट! उपदेशकों के लिए उपसर्ग के रूप में उपयोग किया जाता है । इसलिए, बैश मूल्यांकन करने की कोशिश करता है , लेकिन संदर्भित घटना नहीं पा सकता है। !"
मेगो

31

पायथन 2.7

# Look I'm actually coding: see my happy face?
print ':)'

बल्कि अजेय उत्पन्न करता है:

SyntaxError: encoding problem: with BOM

एक साधारण टिप्पणी एक त्रुटि कैसे उत्पन्न कर सकती है?


12
नवीनतम पायथन दुभाषियों में: यदि पहली 2 पंक्तियों के साथ शुरू होता है #और इसमें स्ट्रिंग coding:अगला शब्द होता है जिसे एन्कोडिंग विवरण के रूप में इस्तेमाल किया जाता है
AMK

31

मेथेमेटिका

चित्रमय आउटपुट बनाने के लिए मैथेमेटिका का उपयोग करते समय, कभी-कभी प्रोग्राम में उपयोग किए जा रहे विनिर्देशों के अनुसार त्रुटि संदेशों को ट्रिगर किया जाता है। यहाँ एक तुच्छ उदाहरण है।

Rotate[f/0, .6]

यहाँ छवि विवरण दर्ज करें


11
यह वास्तव में एक त्रुटि संदेश नहीं है, हालांकि, यह है? जब आप किसी वस्तु को शून्य से विभाजित करते हैं तो यह केवल मूल्य होता है।
इल्मरी करोनें ११'१४

26

TI-89 रेखांकन कैलकुलेटर

हाई स्कूल कैलकुलस में निहित विभेदीकरण के बारे में सीखने पर मुझे यह पता चला। यदि आप इनपुट करते हैं:

d(xy+x=0,x)

आप निम्नलिखित प्राप्त करें:

1 = 0

इस चेतावनी के साथ, स्क्रीन के नीचे छोटे अक्षरों में मुद्रित किया गया:

Warning: May produce false equation

ऐसा इसलिए होता है क्योंकि xyइसकी व्याख्या नहीं की जाती है x * y, बल्कि अपने स्वयं के प्रतीक के रूप में की जाती है xy

अजीब तरह से, यदि आप करते हैं, तो आप उसी चेतावनी के साथ d(xy=0,x)मिलते हैं 0 = 0


22

आप हास्केल संकलक के मस्तिष्क में विस्फोट कर सकते हैं:

C:\Windows\system32>ghci
...
Prelude> :set -XExistentialQuantification
Prelude> data Foo = forall a. Foo a
Prelude> let foo f = 1 where Foo a = f

<interactive>:4:21:
    My brain just exploded
    I can't handle pattern bindings for existential or GADT data constructors.
    Instead, use a case-expression, or do-notation, to unpack the constructor.
    In the pattern: Foo a
    In a pattern binding: Foo a = f
    In an equation for `foo':
        foo f
          = 1
          where
              Foo a = f
Prelude>

22

माणिक

नियमों का दुरुपयोग।

class StandardError

  def to_s
    words = File.open('/usr/share/dict/words'){|f|f.readlines.map &:chop}.sample(100)
    words.last.capitalize!
    super.gsub(/\w+/){words.pop}
  end

  to_s(3)

end

यदि OSX पर चलाया जाता है, जैसे, उत्पादन

$ ruby weird_runtime_error.rb 
weird_runtime_error.rb:9:in `to_s': Sculpturation contingence explicate tappet(phonendoscope ethopoeia nannandrous) (ArgumentError)
    from weird_runtime_error.rb:9:in `<class:StandardError>'
    from weird_runtime_error.rb:1:in `<main>'

6
पृथ्वी पर उसका क्या अर्थ है?
टीआरआईजी

9
इसका मतलब है wrong number of arguments(1 for 0)। यह व्यक्त कर रहा है कि एक ऐसी भाषा के माध्यम से जो भाषाई दुर्बलता के लिए बहुत कम सम्मान के साथ अंग्रेजी शब्दावली का उपयोग करते हुए आलस्य और रूढ़िवादी रूप से उत्पन्न होती है।
हिस्टोक्रेट

21

डॉस प्रॉम्प्ट

c:\>make love

आपको देता है

Fatal Error: 'love' does not exist. Don't know how to make it.

इस पर लड़खड़ाते हुए जब मैं अपने कंप्यूटर को अप्राकृतिक होने के लिए अपमानित करने की कोशिश कर रहा था। मुझे थोड़े समय के लिए दुखी कर दिया जब तक मुझे पता नहीं चला, कि यह केवल तभी होता है जब प्यार मौजूद नहीं होता है। यदि यह मौजूद है तो वह ख़ुशी से इसे बनाएगा।


5
यह वास्तव में makeउपयोगिता के लिए समर्पित है , न कि स्वयं डॉस के लिए।
वोवेन

1
मैं:make: *** No rule to make target 'love'. Stop.
agtoever

@ आप जो भी कर रहे हैं गलत बना रहे हैं।
नविन

मुझे मिलता है: make: Fatal error: Don't know how to make target 'love'लेकिन यह यूनिक्स पर है। डॉस पर, मुझे मिलता है make is not recognized as an internal or external command, operable program or batch file
lebatsnok

17

बैश (बड़ी त्रुटि)

यह त्रुटि बैश में एक Quine है!

$ bash: bash:: command not found...
bash: bash:: command not found...

बेशक आप प्रासंगिक locale(यहाँ अंग्रेजी) होना चाहिए ।


1
मेरा ...अंत में प्रिंट नहीं हुआ , इसलिए मुझे इसे मूल इनपुट में भी छोड़ना पड़ा।
ज़ेव ईसेनबर्ग

16

CSH

वास्तव में शास्त्रीय cshमजाक:

% make fire?
make: No match.

15

बैश - एक दुर्लभ ऐतिहासिक त्रुटि संदेश का सटीक मनोरंजन

echo -ne $(tail -n +257 /usr/src/linux*/drivers/char/lp.c | head -1 | cut -d '"' -f 2 | sed 's/%d/0/')

आउटपुट:

lp0 on fire

लाइनक्स कर्नेल स्रोत को सामान्य स्थान पर अनपैक करने की आवश्यकता होती है।

मजेदार तथ्य: एक बार जब मैं एक पुराने रिबन प्रिंटर को चला रहा था, तब मैंने बयाना में यह संदेश प्राप्त किया।


क्या यह एक त्रुटि संदेश है, या सिर्फ एक प्रोग्राम का आउटपुट है?
यो '

1
@yo 'बैश वन-लाइनर स्वयं ही सफलतापूर्वक लौटता है, लेकिन जो उत्पादन करता है वह एक वास्तविक त्रुटि संदेश है; स्क्रिप्ट बस प्रिंटर ड्राइवर स्रोत से त्रुटि खींचती है।
दंगा

आह ठीक है, यह एक मुश्किल काम है :-)
यो

1
संयोग से, त्रुटि का अर्थ है कि यह एक पेपर जाम को प्रिंट करना जारी रखता है, जो कि आग का खतरा है।
जोशुआ

13

सी (++)

यदि संकलन-समय की त्रुटियां यहां एक ("क्रैशसीसी" नामक फ़ाइल मानकर) गिनती हैं।

#include "crash.c"

int main(){ return 0; }

यह संकलन के साथ स्क्रीन को भरता है (Ctrl-C तैयार है)

                 from crash.c:1,
                 from crash.c:1:
crash.c:3:1: error: redefinition of ‘main’
crash.c:3:1: note: previous definition of ‘main’ was here
In file included from crash.c:1:0,
                 from crash.c:1,
                 from crash.c:1,

एक और स्निपेट जो पूरी तरह से अच्छी तरह से संकलित करता है (के तहत कोई चेतावनी नहीं है -Wallऔर सी </ s> की सुंदर प्रकार की सुरक्षा को दिखाता है

#include <stdio.h>
int i;

int main(){
  sprintf(NULL, "%s", (char *) (void *) (1/i));
  return 0;
}

यह चल रहा है देता है:

Floating point exception (core dumped)

13

माणिक

ऐसा लगता है कि यह अजीब है कि यह उच्च-स्तरीय भाषा में हो सकता है।

$*<<$*<<$**$/

पैदा करता है

ArgumentError: recursive array join

10

यह बहुत पुराना है, लेकिन BCPL को याद रखने वालों के लिए,

GET "LIBHDR"

LET START() = VALOF 
$8
        RESULTIS 0
$)

शिकायत करेंगे

$8
 ^
"( ) or 8 expected"

10

आर

यह तकनीकी रूप से एक त्रुटि नहीं बल्कि एक चेतावनी है लेकिन फिर भी यह हास्यास्पद है, और पूरी तरह से गूढ़ कारणों के लिए होता है।

[[EDIT]] ऐसा लगता है कि मजाकिया चेतावनियों के कुछ हिस्सों का कारण RStudio में R प्रति se के बजाय रहता है, इसलिए यह पहले की तुलना में कम दिलचस्प है। पहला उदाहरण plot(1:2, NotAGraphicalParameter = "ignore.me"), हालांकि, "नग्न" आर में अभी भी प्रतिलिपि प्रस्तुत करने योग्य है और यह अपने आप में काफी मज़ेदार है। [[/ EDF]]

> plot(1:2, NotAGraphicalParameter = "ignore.me")
# produces a nice scatterplot with two points, [1,1] and [2,2]
Warning messages:
1: In plot.window(...) :
  "NotAGraphicalParameter" is not a graphical parameter
2: In plot.xy(xy, type, ...) :
  "NotAGraphicalParameter" is not a graphical parameter
3: In axis(side = side, at = at, labels = labels, ...) :
  "NotAGraphicalParameter" is not a graphical parameter
4: In axis(side = side, at = at, labels = labels, ...) :
  "NotAGraphicalParameter" is not a graphical parameter
5: In box(...) : "NotAGraphicalParameter" is not a graphical parameter
6: In title(...) : "NotAGraphicalParameter" is not a graphical parameter
> plot(2:3)
# another nice scatterplot: [2,2] and [3,3] 
# but there should be nothing wrong this time!
# however ...
There were 12 warnings (use warnings() to see them)
> warnings()
Warning messages:
1: "NotAGraphicalParameter" is not a graphical parameter
2: "NotAGraphicalParameter" is not a graphical parameter
3: "NotAGraphicalParameter" is not a graphical parameter
4: "NotAGraphicalParameter" is not a graphical parameter
5: "NotAGraphicalParameter" is not a graphical parameter
6: "NotAGraphicalParameter" is not a graphical parameter
7: "NotAGraphicalParameter" is not a graphical parameter
8: "NotAGraphicalParameter" is not a graphical parameter
9: "NotAGraphicalParameter" is not a graphical parameter
10: "NotAGraphicalParameter" is not a graphical parameter
11: "NotAGraphicalParameter" is not a graphical parameter
12: "NotAGraphicalParameter" is not a graphical parameter
# but let's try once more:
> plot(2:3)
# yup. no warnings this time. we had to do it twice

यह ऐसा है जैसे आर हमारे अपमान को याद करता है। लेकिन बहुत लम्बे समय के लिए नहीं।

मैं वास्तव में नहीं समझा सकता कि ऐसा क्यों होता है - लेकिन यह प्रतिलिपि प्रस्तुत करने योग्य है। वास्तव में यह हर बार होता है जब आप 1 प्लॉट करने के लिए कुछ "नहीं एक ग्राफिकल पैरामीटर" की आपूर्ति करते हैं, और फिर पूरी तरह से त्रुटिहीन तरीके से एक प्लॉट 2 करते हैं। यह विशेष रूप से मज़ेदार है कि हमें दूसरे प्लॉट के लिए 12 "नहीं एक ग्राफिकल पैरामीटर" चेतावनियां मिलती हैं लेकिन पहले वाले के लिए केवल 6। एक और मज़ेदार बात यह है कि यदि आप एक मान NULL के साथ "न कि एक ग्राफिकल पैरामीटर" की आपूर्ति करते हैं, तो कोई भी शर्त नहीं डाली जाती है:

plot(1:2, Nonsense=NULL)
# no warnings
# however
plot(1:2, Nonsense="gibberish")
# gives the usual 6-pack of warnings

और इससे भी अधिक हास्यास्पद है, चलो पहले से तैयार किए गए भूखंड के शीर्ष पर कुछ रेखाएँ खींचते हैं:

plot(1:2)
# you will see the number of warnings growing with each line:
lines(1:2, 1:2, mumbo = 1)
lines(1:2, 1:2, jumbo = 2)
lines(1:2, 1:2, bimbo = 3)
lines(1:2, 1:2, cucaracha = 4)
lines(1:2, 1:2, karaoke = 5)
lines(1:2, 1:2, radiogaga = 6)
lines(1:2, 1:2, reptiles = 7)
lines(1:2, 1:2, cowsonmoon = 8)
lines(1:2, 1:2, stainlessSteelLadderToTheMoon = 9)
lines(1:2, 1:2, frambuesa = 10)
lines(1:2, 1:2, fresa = 11)
lines(1:2, 1:2, limonYNada = 12)
lines(1:2, 1:2, slingsAndArrows = 13)
# ... and now you have 25 warnings:
warnings()

Warning messages:
1: "mumbo" is not a graphical parameter
2: "jumbo" is not a graphical parameter
3: "bimbo" is not a graphical parameter
4: "cucaracha" is not a graphical parameter
5: "karaoke" is not a graphical parameter
6: "radiogaga" is not a graphical parameter
7: "reptiles" is not a graphical parameter
8: "cowsonmoon" is not a graphical parameter
9: "stainlessSteelLadderToTheMoon" is not a graphical parameter
10: "frambuesa" is not a graphical parameter
11: "fresa" is not a graphical parameter
12: "limonYNada" is not a graphical parameter
13: "mumbo" is not a graphical parameter
14: "jumbo" is not a graphical parameter
15: "bimbo" is not a graphical parameter
16: "cucaracha" is not a graphical parameter
17: "karaoke" is not a graphical parameter
18: "radiogaga" is not a graphical parameter
19: "reptiles" is not a graphical parameter
20: "cowsonmoon" is not a graphical parameter
21: "stainlessSteelLadderToTheMoon" is not a graphical parameter
22: "frambuesa" is not a graphical parameter
23: "fresa" is not a graphical parameter
24: "limonYNada" is not a graphical parameter
25: In plot.xy(xy.coords(x, y), type = type, ...) :
  "slingsAndArrows" is not a graphical parameter

यह होना चाहिए नहीं जब तक कोई न्याय नहीं होता तब तक बड़ा समय जीतो।


1
आप किस संस्करण का उपयोग कर रहे हैं? क्योंकि मैं plot(2:3)उपयोग करने के बाद आपके साथ मिल रही चेतावनी के पैक को पुन: पेश नहीं कर सकता plot(1:2, NotAGraphicalParameter = "ignore.me")। क्या तुमने अपने में कुछ फिर से परिभाषित किया .Rprofile?
प्लेनैपस

1
ऐसा लगता है कि R Rstudio (विंडोज और उबंटू दोनों पर) में रनिंग के लिए विशिष्ट है, लेकिन तब नहीं होता है जब आप लिनक्स टर्मिनल या विंडोज़ Rgui में R चलाते हैं।
lebatsnok

मुझे लगता है कि मैंने Rstudio के बिना मॉडलिंग फ़ंक्शन (lm या glm) के साथ कुछ ऐसा ही देखा है, लेकिन अब इसे पुन: पेश नहीं कर सकता। (यही है, पहले चेतावनी दी जा रही थी जब किसी भी अधिक प्रासंगिक नहीं है।)
lebatsnok

9

विंडोज कमांड स्क्रिप्ट

चेतावनी, यह एक कांटा बम है!

यदि आप किसी भी तरह से कंसोल को छोड़ने की कोशिश करते हैं, तो यह छोड़ने के बारे में कचरा सवाल पैदा करेगा।

%0|%0|%0

बोनस:

  • पुनः आरंभ होने तक सिस्टम को बहुत अधिक अनुपयोगी बना देगा
  • स्क्रिप्ट को छोड़ने से रोकता है, जो असंभव होना चाहिए

2
डेंजर विल रॉबिन्सन?
जैकब

7

q आपका अपमान करता है

q)`u#1 1
'u-fail
q)

`` `यू #` `बताता है qकि एक सूची में प्रत्येक तत्व अद्वितीय है (इसलिए यह किसी प्रकार के हैश-आधारित सूचकांक का निर्माण कर सकता है, संभवतः)। यह तब होता है जब यह वास्तव में सच नहीं होता है।


1
भाषा क्या है? मैंने "क्ष अपमान" भाषा खोजने की कोशिश की, लेकिन मुझे कुछ भी नहीं मिला।
कोनराड बोरोस्की

अनजाने में गूढ़ होने के लिए क्षमा करें, भाषा [q] ( en.m.wikipedia.org/wiki/… है । यह k4, BTW में भी काम करती है।
हारून डेविस

6

कंपाइलर ऑप्टिमाइज़ेशन त्रुटियों के बारे में कैसे:

#include <stdio.h>

#define N 4

int main(void)
{
    int sum;
    int i;
    int arr[N];

    for (i = 0, sum = 0; i < N; i++, arr[i] = sum) {
        sum += arr[i];
    }
    printf("%d\n", sum);
    return 0;
}

यह gcc> = 4.7 के लिए विशिष्ट है। संकलन और साथ ठीक चलता है gcc -O0 -Wall। के साथ संकलित करता है gcc -O2 -Wallलेकिन एक परिणामी लूप में होता है।

यह भी ध्यान दें, कैसे जीसीसी छोटे के लिए समस्या को देखता है N, जैसे N = 3:

test.c:11:38: warning: array subscript is above array bounds [-Warray-bounds]
  for (i = 0, sum = 0; i < N; i++, arr[i] = sum) {
                                       ^
test.c:12:13: warning: 'arr[0]' is used uninitialized in this function [-Wuninitialized]
  sum += arr[i];
         ^

Btw, यह एक बग रिपोर्ट से लिया गया है, मैं बग नंबर याद नहीं कर सकता।


3
खैर, यह अपरिभाषित व्यवहार है, इसलिए कंपाइलर को कुछ भी करने की अनुमति है। लेकिन यह अभी भी अजीब लगता है कि संकलक ने स्थानीय सरणी के बाहर एक असाइनमेंट को बदलने का फैसला किया है जो कभी भी उपयोग नहीं किया जाता है, और अघोषित मूल्य का एक अनंत लूप का उपयोग करता है, भले ही सी मानक यह अनुमति देता है (आखिरकार, यह अपरिभाषित व्यवहार पर निर्भर करता है - एक्सेस करना arr[N](सरणी के बाहर), और एक्सेस करना arr[0](जो अनइंस्टालिनेटेड है))। जैसा कि अपरिभाषित व्यवहार के लिए कुछ भी अनुमति दी जाती है, यह अनुकूलन त्रुटि नहीं है, लेकिन उपयोगकर्ता जो चाहते थे वह होने की बहुत संभावना नहीं है।
कोनराड बोरोस्की

4
यह स्पष्ट रूप से संकलक अनुकूलन त्रुटि नहीं है। यूबी यूबी है, और कंपाइलर सही होगा भले ही उसने आपके हार्ड ड्राइव से आपके सभी डेटा को मिटाने का फैसला किया हो।
H2CO3

5

मैंने हमेशा एपीएल में इस अजीबता को पसंद किया है:

      ⍝ स्पष्ट रूप से एक वाक्यविन्यास त्रुटि
      {[]} ३  
वक्य रचना त्रुटि
      {(]} 3

      ⍝ लेकिन:
      {[]} १ ÷ ०
DOMAIN त्रुटि
      {(]} 1 ÷ 0 

      ⍝ यह सांख्यिकीय रूप से परिभाषित कार्यों के साथ भी काम करता है
      ∇z ← fx
[१] z 1 [{]} x
[२] ∇
      च 1 ÷ 0
DOMAIN त्रुटि
      च 1 ÷ 0
     ∧
      च ३
वक्य रचना त्रुटि
f [1] z ← [{]} x     

यह आलसी कार्यों के अंदर पार्स करता है!


4

पीएचपी

<?php
[][] = 42;

[]तत्वों को पुश करने के लिए उपयोग किया जाता है। हालाँकि, यदि आप इसे सरणी शाब्दिक के लिए उपयोग करते हैं, तो PHP आपको क्रेज़ी एरर मैसेज करता है, भले ही आप इसे पुश करने के लिए असाइन करें। PHP> = 5.4 की आवश्यकता है, इससे पहले कि आप अनुक्रमित सरणी शाब्दिक नहीं कर सकते थे।

आउटपुट:

घातक त्रुटि : पंक्ति 2 में [...] [...] में पढ़ने के लिए उपयोग नहीं कर सकता


4

अजगर

नेस्टेड ब्लॉक

for a in range(26):
 for b in range(26):
  for c in range(26):
   for d in range(26):
    for e in range(26):
     for f in range(26):
      for g in range(26):
       for h in range(26):
        for i in range(26):
         for j in range(26):
          for k in range(26):
           for l in range(26):
            for m in range(26):
             for n in range(26):
              for o in range(26):
               for p in range(26):
                for q in range(26):
                 for r in range(26):
                  for s in range(26):
                   for t in range(26):
                    for u in range(26):
                     for v in range(26):
                      for w in range(26):
                       for x in range(26):
                        for y in range(26):
                         for z in range(26):
                          print a

पायथन 2.7: SystemError: too many statically nested blocks

स्व-संदर्भित सूची

def printList(myList):
    for element in myList:
        if isinstance(element, list):
            printList(myList)
        else:
            print(element)

a = []
a.append(a)
printList(a)

पायथन 2.7

सच्चा कोई स्थिर नहीं है

निम्नलिखित उदाहरण में समस्या यह है कि पायथन 2.7 में, Trueऔर Falseस्थिरांक नहीं हैं। और Trueऔर Falseस्वचालित रूप से करने के लिए casted प्राप्त कर सकते हैं 1और 0:

True=False
a=10/True

Traceback (most recent call last):
  File "/home/moose/.config/pluma/tools/new-tool-2", line 11, in <module>
    exec(sys.stdin.read())
  File "<string>", line 2, in <module>
ZeroDivisionError: integer division or modulo by zero

पायथन 2.7:

Intendation

def f(n):
    if n <= 1:
        return n
    else:
        return f(n-1)+f(n-2)

क्या आपको त्रुटि मिलती है?

Traceback (most recent call last):
  File "/home/moose/.config/pluma/tools/new-tool-2", line 11, in <module>
    exec(sys.stdin.read())
  File "<string>", line 4
    else:
       ^
SyntaxError: invalid syntax

पायथन 2.7 में टैब और स्पेस मिक्स करना ठीक था ... लेकिन इंडेंटेशन लेवल को ध्यान में रखें!


1
स्टैक एक्सचेंज प्लेटफ़ॉर्म कोड में टैबलेटर प्लेटफ़ॉर्म की अनुमति नहीं देता है, क्योंकि मिक्सिंग स्पेस और टैबलेटर उदाहरण सही ढंग से काम नहीं करते हैं।
कोनराड बोरोस्की

@xfix: ठीक है, लेकिन मुझे लगता है कि जो लोग इसे पढ़ते हैं उन्हें यह बात मिलती है। अधिकांश संपादक या तो स्थान / टैब नहीं दिखाते हैं (व्हॉट्सएप को छोड़कर) और यदि वे इसे दिखाते हैं, तो यह ज्यादातर समय ग्रे होता है। और हर दूसरी भाषा में (व्हॉट्सएप को छोड़कर) व्हाट्सएप कोई फर्क नहीं पड़ता, जब तक कि कम से कम एक है।
मार्टिन थोमा

आपको अपने प्रोग्राम को व्हॉट्सएप प्रोग्रामिंग भाषा में लिखना चाहिए।
अलेक्जेंडर

क्या पायथन 3 एक मजाक है?
राय-

@ मिनिटेक मुझे कोई पता नहीं है। यही इसके साथ करना चाहिए print a
जस्टिन

3

मैं शुरू करूँगा:

#include <iostream>

using namespace std;

class A
{
public:
    A()
    {
    }

    void doSomethingDiabolical()
    {
        delete this;
    }

    virtual void breakHorribly()
    {
        cout << "still alive" << endl;
        doSomethingDiabolical();
        cout << "still alive" << endl;
    }
};

class B : public A
{
public:
    B() : A()
    {
    }

    void breakHorribly()
    {
        cout << "still alive" << endl;
        ((A *) this)->breakHorribly();
        cout << "still alive" << endl;
        doSomethingDiabolical();
        cout << "still alive" << endl;
        breakHorribly();
        cout << "dead" << endl;
    }
};

int main()
{
    jane();
}

void jane()
{
    cout << "still alive" << endl;
    A * o = new B;
    cout << "still alive" << endl;
    o->breakHorribly();
}

कोई भी अनुमान लगाता है कि यह कार्यक्रम क्यों दुर्घटनाग्रस्त होता है? : डी

janeरन देखें : http://ideone.com/gtaZ3


1
क्या यह एक सीधा-सीधा अनंत पुनरावृत्ति नहीं है? B::BreakHorriblyकॉल करने से पहले खुद को कॉल किया doSomethingDiabolicalजाता है, इसलिए delete thisकभी नहीं पहुंचा जाता है।
मारिनस

यह कार्यक्रम बड़ी संख्या में कारणों से विस्फोट करता है। यदि आप अलग-अलग प्रिंट स्टेटमेंट निकालते हैं तो इसका व्यवहार बदल जाता है। हालाँकि, आप सही कह रहे हैं। मेरे पास एक बार होने वाले अपरिभाषित व्यवहार को पुन: पेश करने का समय नहीं था, लेकिन मैंने रनटाइम पर एक शुद्ध आभासी फ़ंक्शन कॉल प्राप्त किया।
खोदा

2
आप यह नहीं कह रहे हैं कि एक बार गलती से कुछ टाइप हो जाए delete this, क्या आप हैं?
को बंद करना

नहीं, यह उससे कहीं अधिक सूक्ष्म था, लेकिन अंतिम परिणाम एक ही था: एक विध्वंसक को एक सदस्य समारोह के निष्पादन के दौरान एक वर्ग के लिए बुलाया गया था
वूग

3

दे घुमा के

मुझे यह आज मिला जब मैंने यह पता लगाने की कोशिश की कि क्या इस प्रणाली की रक्षा करना संभव है rm -rf /

mkdir /tmp/a
mkdir /tmp/a/b
sudo mount --bind /tmp/a /tmp/a/b
rm -rf /tmp/a

त्रुटि संदेश के साथ LANG=C:

rm: WARNING: Circular directory structure.
This almost certainly means that you have a corrupted file system.
NOTIFY YOUR SYSTEM MANAGER.
The following directory is part of the cycle:
  '/tmp/a/b'

यह चेतावनी से आ रही है rm, नहीं bash। निश्चित नहीं है कि आपको शीर्षक में कौन सी भाषा घोषित करनी चाहिए, यह देखते हुए कि आप bashइसे सेट करते थे।

2

आर

एक और जो हास्यास्पद नहीं है और फिर, एक त्रुटि के बजाय एक चेतावनी है, लेकिन अभी भी अच्छा है:

> sapply(as.list(-1:-51), log)
 [1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[20] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
[39] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
There were 50 or more warnings (use warnings() to see the first 50)

मुझे अंतिम बिट पसंद है: 50 या अधिक :)

और वास्तविक चेतावनियाँ:

1: In lapply(X = X, FUN = FUN, ...) : NaNs produced
2: In lapply(X = X, FUN = FUN, ...) : NaNs produced
....
50: In lapply(X = X, FUN = FUN, ...) : NaNs produced

FUN = FUN!


1
नयन कोड ?! खैर, यह वास्तव में अजीब है!
क्रॉल्टन

मुझे नहीं पता कि क्या अप्रत्याशित या आश्चर्यजनक है। एक नकारात्मक उत्पाद का लॉग नॉट ए नंबर (NaN) जैसा कि उसे होना चाहिए।
प्लेनैपस

2

CPython

import ctypes
import sys
(ctypes.c_char * sys.getsizeof(None)).from_address(id(None))[:4] = '\x00' * 4

परिणाम:

Fatal Python error: deallocating None

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

पायथन 3 में भी बेहतर ctypes.pythonapi._Py_Dealloc(ctypes.py_object(None)):।
kirbyfan64sos

2

बैश - उल्टा भागने में विफलता

echo "this should definitely work!!!11!"

रिटर्न

-bash: !11: event not found

(कमांडलाइन पर इतिहास विस्तार को दोहरे उद्धरण चिह्नों से रोका नहीं गया है)

बोनस:

echo "I don't know what's gone wrong!! !echo is usually pretty foolproof!-1"

आउटपुट के अपेक्षित होने की संभावना नहीं है। प्रेस ऊपर आदेश को फिर से पाने के लिए, और नोटिस यह आपके द्वारा लिखे से बदल गया है। यदि आप एक-दो बार दबाते हैं और प्रवेश करते हैं, तो संभव है कि आपका आउटपुट कुछ भयावह दिखने लगेगा। इसे अपने लिए आजमाएं।


2
यह उत्तर codegolf.stackexchange.com/a/17776 का डुप्लिकेट है ।
डेनिस

2

सी # - पुनरावर्ती, आलसी फाइबोनैचि जनरेटर

static void Main()
{
    Console.WriteLine(string.Join(",", fib().Take(141)));
    Console.ReadLine();
}

static IEnumerable<decimal> fib(decimal n = 0, decimal m = 1)
{
    if (n == 0)
    {
        yield return 0;
        yield return 1;
    }
    while (true)
    {
        yield return n + m;
        foreach(var x in fib(m, n+m))
        {
            yield return x;
        }
    }
}

यह कोड ठीक लगता है, है ना? एक काफी सरल फाइबोनैचि जनरेटर, कुछ पुनरावृत्ति और आलसी गणना के साथ जुड़ा हुआ है। कार्य करना चाहिए।

नहीं! इसे चलाने से एक अतिप्रवाह होगा। ऐसा इसलिए है क्योंकि हम दशमलव का उपयोग कर रहे हैं, और 141 वीं फाइबोनैचि संख्या (~ 8.1E28) दशमलव के अधिकतम मान (~ 7.9E28) से अधिक है।

हालाँकि, जब आप इसके अधिकतम मान से अधिक हो जाते हैं, तो यह ओवरफ़्लो अपवाद नहीं होता है। इसके बजाय, जैसा कि अपेक्षित था, एक नकारात्मक मूल्य से अधिक हो गया। तो अगर हम int को दशमलव के बजाय प्रतिस्थापित करते हैं, जैसे निम्न कोड में, यह काम करना चाहिए, है ना?

static void Main()
{
    Console.WriteLine(string.Join(",", fib().Take(141)));
    Console.ReadLine();
}

static IEnumerable<int> fib(int n = 0, int m = 1)
{
    if (n == 0)
    {
        yield return 0;
        yield return 1;
    }
    while (true)
    {
        yield return n + m;
        foreach(var x in fib(m, n+m).ToList())
        {
            yield return x;
        }
    }
}

यदि आप कोड पढ़ते हैं तो यह स्पष्ट होना चाहिए कि यह काम क्यों नहीं करेगा। यदि आपने नहीं किया ... मैंने केवल दशमलव से इंट में टाइप नहीं बदला; मैं भी ToList () के लिए फ़ॉर्वर्ड स्टेटमेंट में कॉल किया था। यह प्रगणक को बेसब्री से मूल्यांकन किए जाने के लिए मजबूर करेगा। यह 141 पुनरावृत्तियों का कारण नहीं होगा, बल्कि इसके बजाय अनंत संख्या में पुनरावर्तन होंगे। वास्तव में, लंबे समय से पहले यह अनन्तता को हिट करता है, यह निश्चित रूप से स्टैक को ओवरफ्लो करता है, जिससे रनटाइम एक स्टैकओवरफ़्लोएक्स अपवाद को फेंक देता है। (बोनस: यह अपवाद नहीं पकड़ा जा सकता है, इसलिए यह रनटाइम को क्रैश कर देगा)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.