ばかげたランタイムエラー[終了]


40

クレイジー、あいまい、ばかげた、または単なるナッツのランタイムエラーを生成するプログラムを作成します。難読化とゴルフの大きさ(短さ)は必要ありません。

  • 正常に機能するように見えるソリューションが優れています。
  • ある方法を破るが、別の方法を破る必要があるように見えるソリューションが優れています。
  • 非決定的であるソリューションは、再現性がある場合に限り優れています。
  • エラーの原因と症状との距離が長いソリューションの方が優れています。
  • 不可能であるべきエラーを生成するためのボーナスポイント。
  • ランタイムをクラッシュさせるエラー(Pythonセグメント障害の作成など)またはオペレーティングシステムのボーナスポイント。

スコアの単位は、賛成票です。

補遺1

コンパイラの誤動作も問題ありません。


2
Pythonのセグメンテーション違反の作成は簡単です:import sys; sys.setrecursionlimit(~-2**31); x=lambda x:x(x); x(x);
marinus

ピーター:おっと。私はそれを書くことの途中で質問を半分に再利用しました:S
Wug

... malbolgeまたはINTERCALはどうですか?私は彼らがかなり異常なエラーを持っていると確信しています、おそらく単一の文字でもそれを行うことができます。
アコライト

1
これは間違いなくソリューションに行くのに最適なリンクです:destroyallsoftware.com/talks/wat :-)
seri

回答:


69

必須のPHPのもの(5.4の時点ではまだ修正されていません):

<?::

出力:

解析エラー:構文エラー、1行目の予期しないT_PAAMAYIM_NEKUDOTAYIM

わあ?


12
私はこれが好きです。私のお気に入りのエラーメッセージかもしれません。友人がWindowsラップトップをリカバリパーティションから起動しようとしたことが1回ありましたが、画面全体が巨大な赤い文字で「ERROR」と綴られた白いボックスに変わりました。
ワグ

4
意図的ですが、それでも奇妙です。「最初は、Paamayim Nekudotayimはダブルコロンの命名に奇妙な選択のように見えます。しかし、Zend Engine 0.5(PHP 3を駆動)を書いている間、それがZendチームがそれを呼ぶことを決めたものです。実際には二重コロンを意味します-ヘブライ語で!」php.net/manual/en/language.oop5.paamayim-nekudotayim.php
ジョンゴーティエ

12
@HansEngel:はい、ヘブライ語ではダブルコロンを意味します。これを除くすべてのトークンに英語を使用するのは理にかなっています...?PHPチームに尋ねるだけでいいと思います。
Ry-

申し訳ありませんが男が、あなたは、単に静的なメソッド/変数呼び出している''クラスから(空の文字列)''(空の文字列)
イスマエル・ミゲル

1
@IsmaelMiguel:ヘブライ語のせいで混乱しているのです。間違っているからではありません。
Ry- 14年

61

GCCコンパイルエラー:

int main()
{
        long long long a;
}

エラー:long long longはGCCには長すぎます


6
両方とも有効long long longである場合long、誰かが試すことを知っていましたlong long
コンラッドボロスキー14年

3
「長すぎます!」より良いエラーメッセージだったでしょうが、これはまだ素晴らしい答えです。
ワグ14年

52

Windowsコマンドプロンプト

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

出力:

このとき、幸せは予想外でした。


1
私は結果を確認するために、そのコマンドを試してみましたが、それが表示さ^V:(ハード日間これらの
はFabricio

8
@ Fabricio、CTRL + Vを押して行を貼り付けるだけでしたか?コマンドプロンプトで、貼り付けのキーボードの「ショートカット」はAlt +スペース、E、Pです。
Hand-E-Food14年

42

PHP

$ 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
なんとf *** php。
ワグ14年

7
PHPはクラスを取得しようとしていますstring(これは有効です)。タイプヒンティング(あなたがしていること)は、クラスに対してのみ機能します。クラスstringが存在しないため、エラーがスローされます。
イスマエルミゲル14年

ここで、コードが適切に機能していることを確認できます。sandbox.onlinephpfunctions.com/
イスマエルミゲル

2
@IsmaelMiguel:ええ、私はそれがなぜ起こるのか理解していますが、私の意見ではまだエラーはばかげています。
コンラッドボロウスキ14年

1
それから試してくださいarray(''=>array()'')
イスマエルミゲル14年

33

バッシュ

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

そして、あなたはbashが単純な「Hello、world!」を受け入れると思うでしょう。プログラム。


これの説明:bashでのプログラムに引数として二重引用符で渡された文字列は意味、展開されている`echo hi`にターンをhi二重引用符で囲まれた文字列の内部。!イベント指定子のプレフィックスとして使用されます。そのため、bashはを評価しようとし!"ますが、参照されているイベントを見つけることができません。
メゴ

31

Python 2.7

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

かなり役に立たないものを生成します。

SyntaxError: encoding problem: with BOM

単純なコメントはどのようにエラーを生成できますか?


12
最初の2行を開始する場合:最新のPythonインタプリタで#、文字列含まれているcoding:説明をコードとして使用される次の単語
AMK

31

Mathematica

Mathematicaを使用してグラフィカルな出力を作成すると、プログラム自体で使用されている仕様に従ってフォーマットされたエラーメッセージが表示されることがあります。簡単な例を次に示します。

Rotate[f/0, .6]

ここに画像の説明を入力してください


11
ただし、実際にはエラーメッセージではありません。それ、何かをゼロで除算したときにMathematicaが返す値です。
イルマリカロネン14年

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

Haskellコンパイラの脳を爆発させることができます:

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
それは一体何を意味するのでしょうか?
TRiG 14年

9
という意味wrong number of arguments(1 for 0)です。言語の妥当性をほとんど考慮せずに、英語の語彙を使用して遅延的かつ確率的に生成される言語を通じてそれを表現しています。
histocrat

21

DOSプロンプト

c:\>make love

あなたにあげる

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

私は、非協力的であるためにコンピューターをin辱しようとしていたときに、これにつまずきました。これは愛が存在しない場合にのみ発生することが判明するまで、しばらく私をちょっと悲しくさせました。それが存在する場合、彼は喜んでそれを作ります。


5
これは実際にはmakeユーティリティ専用であり、DOS自体ではありません。
Vovanium 14

1
私が取得します:make: *** No rule to make target 'love'. Stop.
agtoever

@agtoever間違ったmakeを実行しています。
ナビン

私は得る:make: Fatal error: Don't know how to make target 'love'しかし、それはUnix上です。DOSでは、が表示されますmake is not recognized as an internal or external command, operable program or batch file
レバツノック

17

Bash(Quineエラー)

このエラーはBashのQuineです!

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

もちろん、関連するものが必要ですlocale(英語)。


1
私は...最後に印刷しなかったので、元の入力でも省略しなければなりませんでした。
ゼフアイゼンバーグ14年

16

CSH

本当に古典的なcshジョーク:

% make fire?
make: No match.

15

Bash- まれな履歴エラーメッセージの正確な再現

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

通常の場所でlinuxカーネルソースを解凍する必要があります。

楽しい事実:古いリボンプリンターを実行しているときに、このメッセージを真剣に受け取りました。


エラーメッセージですか、それともプログラムの出力ですか?
yo

1
@yo 'bashワンライナー自体は正常に戻りますが、生成される出力は真のエラーメッセージです。スクリプトは、プリンタドライバソースからエラーを取得するだけです。
暴動

ああ、それはやるのが難しいことです:
yo

1
ちなみに、このエラーは、紙詰まりが発生し続けることを意味し、火災の危険があります。
ジョシュア

13

C(++)

コンパイル時のエラーがここにある場合(「crash.c」という名前のファイルを想定)。

#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、Cの美しい型安全性を示しています</ 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

R

これは技術的にはエラーではなく警告ですが、それでもばかげており、完全に難解な理由で発生します。

[[編集]]面白い警告の一部の原因は、R自体ではなくRStudioにあるようです。そのため、私が最初に思ったほど面白くありません。plot(1:2, NotAGraphicalParameter = "ignore.me")ただし、最初の例、つまり「裸の」Rでも再現可能であり、それ自体が十分面白いものです。[[/ EDIT]]

> 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

Rが私たちのin辱を覚えているようです。そんなに長くない。

私はこれがなぜ起こるのか本当に説明できません-しかし、それは再現可能です。実際には、プロット1に「グラフィカルパラメーターではない」いくつかの値を指定し、プロット2を完全に非の打ちどころのない方法で実行するたびに発生します。2番目のプロットでは12個の「グラフィカルパラメーターではない」警告が表示されますが、最初のプロットでは6個しか表示されないことが特に面白いです。もう1つの面白い点は、「グラフィカルパラメーターではない」値に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
どのバージョンのRを使用していますか?私はあなたがplot(2:3)使用した直後に得ている警告のパックを再現することができないのでplot(1:2, NotAGraphicalParameter = "ignore.me")。あなたは何かを再定義しました.Rprofileか?
プランナパス14年

1
これは、Rstudio(WindowsとUbuntuの両方)でRを実行することに固有のように見えますが、LinuxターミナルまたはWindows RguiでRを実行すると発生しません。
レバツノク14年

Rstudioなしのモデリング関数(lmまたはglm)で似たようなものを見たことがありますが、今では再現できません。(つまり、関連性が
なくなっ

9

Windowsコマンドスクリプト

警告、これはフォーク爆弾です!

何らかの方法でコンソールを終了しようとすると、終了に関する不要な質問が出力されます。

%0|%0|%0

ボーナス:

  • 再起動するまでシステムをほとんど使用できなくする
  • スクリプトの終了を防ぎます。これは不可能です

2
危険なロビンソン?
ジェイコブ14年

7

qはあなたをin辱します

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

`` `u#` `はqリスト内のすべての要素が一意であることを示します(したがって、おそらく何らかのハッシュベースのインデックスを作成できます)。これは、実際にそうでない場合に起こることです。


1
言語は何ですか?「q s辱する」言語を検索しようとしましたが、何も見つかりませんでした。
コンラッドボロウスキ14年

申し訳ありませんが意図せずに不可解であることのため、言語は([Q]であるen.m.wikipedia.org/wiki/...。。それはまたところで、K4で働く
アーロン・デイヴィス

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、結果はinfループになります。

また、gccがsmallの問題をどのように認識しているかに注意してください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];
         ^

ところで、これはバグレポートから取られたものですが、バグ番号は思い出せません。


3
さて、これは未定義の動作なので、コンパイラは何でもできます。しかし、C標準がこれを許可していても、コンパイラが決して使用されないローカル配列の外側の割り当てを変更し、宣言されていない値を無限ループに使用することを決定したことは奇妙です(結局、未定義の動作に依存します-アクセスarr[N](配列外)、アクセスarr[0](初期化されていない))。未定義の動作に対しては何でも許可されているため、これは最適化エラーではありませんが、ユーザーが望んだものではない可能性が非常に高くなります。
コンラッドボロスキー14年

4
これは、コンパイラの最適化エラーではありません。UBはUBであり、ハードドライブからすべてのデータを根絶することにしたとしても、コンパイラは正しいでしょう。
H2CO3 14年

5

私はいつもこのAPLの奇妙さを気に入っています。

      ⍝明らかに構文エラー
      {(]} 3  
構文エラー
      {(]} 3

      ⍝しかし:
      {(]} 1÷0
ドメインエラー
      {(]} 1÷0 

      static静的に定義された関数でも動作します
      ←z←fx
[1] z←[{]} x
[2]∇
      f 1÷0
ドメインエラー
      f 1÷0
     ∧
      f 3
構文エラー
f [1] z←[{]} x     

関数の内部を遅延解析します!


4

PHP

<?php
[][] = 42;

[]要素をプッシュするために使用されます。ただし、配列リテラルに使用すると、プッシュするために割り当てた場合でも、PHPはクレイジーなエラーメッセージを表示します。PHP 5.4以上が必要です。以前は、インデックス付き配列リテラルを作成できませんでした。

出力:

致命的なエラー2行目の[...] [...]の読み取りに[ ]を使用できません


4

Python

ネストされたブロック

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

Python 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)

Python 2.7

Trueは定数ではありません

次の例の問題は、Python 2.7では定数でTrueありFalse、定数ではないことです。そして、TrueそしてFalse、自動的にキャストを取得することができます10

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

Python 2.7:

意図

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

Python 2.7ではタブとスペースの混在は問題ありませんでしたが、インデントレベルに注意してください!


1
Stack Exchangeプラットフォームではコード内にタブレータが許可されていないため、スペースとタブレータの混合の例は正しく機能しません。
コンラッドボロスキー14年

@xfix:わかりましたが、これを読んだ人がポイントを得ると思います。ほとんどのエディターはスペース/タブも表示せず(末尾の空白を除く)、表示する場合はほとんどの場合灰色です。また、他のすべての言語(空白を除く)では、少なくとも1つが存在する限り、空白は重要ではありません。
マーティントーマ14年

プログラムはWhitespaceプログラミング言語で作成する必要があります。
アレクサンダー14年

Python 3は冗談ですか?
Ry-

@minitechわからない。それはそれで何をすべきかprint aです。
ジャスティン14年

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();
}

このプログラムがクラッシュする理由は推測できますか?:D

jane実行を参照してください:http : //ideone.com/gtaZ3


1
これはかなり単純な無限再帰ではありませんか?が呼び出されるB::BreakHorribly前に自分自身を呼び出すdoSomethingDiabolicalため、delete this到達することはありません。
マリナス

このプログラムは多くの理由で爆発します。別の印刷ステートメントを削除すると、その動作が変わります。しかし、あなたは正しい。かつて定義されていなかった動作を再現する時間がありませんでしたが、実行時に純粋な仮想関数呼び出しを取得することになりました。
ワグ

2
一度誤ってタイプしたと言っているのdelete thisではありませんか?
反時計回りの回転を停止

いいえ、それよりもはるかに微妙でしたが、最終結果は同じでした:メンバー関数の実行中にクラスのデストラクタが呼び出されました
-Wug

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'

この警告はから来てrmbashます。タイトルをどの言語で宣言する必要があるかはbash、設定に使用したことを考えればわかりません。

2

R

とんでもないわけではない、またエラーではなく警告であるが、それでも良いもの:

> 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

楽しい=楽しい!


1
ニャンコード?!まあ、それは確かに奇妙です!
Kroltan 14年

予期しないことや驚くべきことはわかりません。負の数の対数は、必要に応じて非数(NaN)を生成します。
プランナパス14

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.

Python 3ではさらに優れていますctypes.pythonapi._Py_Dealloc(ctypes.py_object(None))
kirbyfan64sos

2

Bash-直感に反するエスケープの失敗

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の複製です。
デニス14

2

C#-再帰的な遅延フィボナッチジェネレーター

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;
        }
    }
}

このコードは問題ありませんよね?かなり単純なフィボナッチジェネレーターで、再帰と遅延列挙を使用しています。動作するはずです。

いや!これを実行すると、OverflowExceptionが発生します。これは、10進数を使用しており、141番目のフィボナッチ数(〜8.1E28)が10進数の最大値(〜7.9E28)を超えているためです。

ただし、intは、最大値を超えてもOverflowExceptionをスローしません。代わりに、予想どおり、負の値にオーバーフローします。したがって、次のコードのようにintを10進数に置き換えると、正常に機能するはずです。

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;
        }
    }
}

コードを読んだ場合、なぜこれが機能しないのかは明らかです。しなかった場合は...型をdecimalからintに変更しただけではありません。また、foreachステートメントでToList()の呼び出しを実行しました。これにより、返される列挙子が強制的に評価されます。これは141回の再帰ではなく、無限の再帰を引き起こします。実際、無限に達するずっと前に、もちろんスタックがオーバーフローし、ランタイムがStackOverflowExceptionをスローします。(ボーナス:この例外はキャッチできないため、ランタイムがクラッシュします)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.