Issue #10362 has been updated by Nobuyoshi Nakada.


Yes, it's intentional spec, but to raise errors `Process.spawn` and `Process.wait` are needed.
It may be good to add an option for errors to `system`.

----------------------------------------
Bug #10362: spawn doesn't raise exception on redirection error
https://bugs.ruby-lang.org/issues/10362#change-49350

* Author: Dmitry Bolshakov
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.0.0p247 (2013-06-27) [i386-mingw32]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
~~~
irb(main):002:0*
irb(main):003:0*
irb(main):004:0* system 'cmd', '/c', 'echo', 'aaa'
aaa
=> true
irb(main):005:0>
irb(main):006:0*
irb(main):007:0*
irb(main):008:0* system 'cmd', '/c', 'echo', 'aaa', :out => ['bad/file.txt', 'w']
=> nil
irb(main):009:0>
irb(main):010:0*
irb(main):011:0*
irb(main):012:0*
irb(main):013:0* system 'cmd', '/c', 'echo', 'aaa', :out => File.open('bad/file.txt', 'w')
Errno::ENOENT: No such file or directory - bad/file.txt
        from (irb):13:in `initialize'
        from (irb):13:in `open'
        from (irb):13
        from C:/Ruby200/bin/irb:12:in `<main>'
irb(main):014:0>
irb(main):015:0*
irb(main):016:0*
~~~

exception is much more descriptive than just nil



-- 
https://bugs.ruby-lang.org/