Merge branch 'andrew-field-possible-patch/error-checking'
This commit is contained in:
commit
6dfa7ceb77
@ -53,6 +53,7 @@ func main() {
|
|||||||
// `TempFile`'s, but it returns a directory *name*
|
// `TempFile`'s, but it returns a directory *name*
|
||||||
// rather than an open file.
|
// rather than an open file.
|
||||||
dname, err := ioutil.TempDir("", "sampledir")
|
dname, err := ioutil.TempDir("", "sampledir")
|
||||||
|
check(err)
|
||||||
fmt.Println("Temp dir name:", dname)
|
fmt.Println("Temp dir name:", dname)
|
||||||
|
|
||||||
defer os.RemoveAll(dname)
|
defer os.RemoveAll(dname)
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
371689e72c46daa43eefbd9b9f4eaa3c490e7fd2
|
cc4755e23cb4ba3c0e0ef5554ec9e9477372422a
|
||||||
yKWE4QTsYQr
|
nMpjCsALS6P
|
||||||
|
@ -40,6 +40,7 @@ func main() {
|
|||||||
|
|
||||||
// A `WriteString` is also available.
|
// A `WriteString` is also available.
|
||||||
n3, err := f.WriteString("writes\n")
|
n3, err := f.WriteString("writes\n")
|
||||||
|
check(err)
|
||||||
fmt.Printf("wrote %d bytes\n", n3)
|
fmt.Printf("wrote %d bytes\n", n3)
|
||||||
|
|
||||||
// Issue a `Sync` to flush writes to stable storage.
|
// Issue a `Sync` to flush writes to stable storage.
|
||||||
@ -49,6 +50,7 @@ func main() {
|
|||||||
// to the buffered readers we saw earlier.
|
// to the buffered readers we saw earlier.
|
||||||
w := bufio.NewWriter(f)
|
w := bufio.NewWriter(f)
|
||||||
n4, err := w.WriteString("buffered\n")
|
n4, err := w.WriteString("buffered\n")
|
||||||
|
check(err)
|
||||||
fmt.Printf("wrote %d bytes\n", n4)
|
fmt.Printf("wrote %d bytes\n", n4)
|
||||||
|
|
||||||
// Use `Flush` to ensure all buffered operations have
|
// Use `Flush` to ensure all buffered operations have
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
d4f19bc0168674b17551bbf55bab7af989452d0e
|
314a0074840e22b328b6412130c17b9bea53c9c9
|
||||||
8kx-qYUXBpA
|
fQ7sd4gXv0F
|
||||||
|
5
public/temporary-files-and-directories
generated
5
public/temporary-files-and-directories
generated
@ -45,7 +45,7 @@ time.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
<a href="http://play.golang.org/p/yKWE4QTsYQr"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
<a href="http://play.golang.org/p/nMpjCsALS6P"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -175,6 +175,7 @@ rather than an open file.</p>
|
|||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">dname</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">TempDir</span><span class="p">(</span><span class="s">""</span><span class="p">,</span> <span class="s">"sampledir"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">dname</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">TempDir</span><span class="p">(</span><span class="s">""</span><span class="p">,</span> <span class="s">"sampledir"</span><span class="p">)</span>
|
||||||
|
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"Temp dir name:"</span><span class="p">,</span> <span class="nx">dname</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"Temp dir name:"</span><span class="p">,</span> <span class="nx">dname</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -241,7 +242,7 @@ prefixing them with our temporary directory.</p>
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var codeLines = [];
|
var codeLines = [];
|
||||||
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"fmt\"\u000A \"io/ioutil\"\u000A \"os\"\u000A \"path/filepath\"\u000A)\u000A');codeLines.push('func check(e error) {\u000A if e !\x3D nil {\u000A panic(e)\u000A }\u000A}\u000A');codeLines.push('func main() {\u000A');codeLines.push(' f, err :\x3D ioutil.TempFile(\"\", \"sample\")\u000A check(err)\u000A');codeLines.push(' fmt.Println(\"Temp file name:\", f.Name())\u000A');codeLines.push(' defer os.Remove(f.Name())\u000A');codeLines.push(' _, err \x3D f.Write([]byte{1, 2, 3, 4})\u000A check(err)\u000A');codeLines.push(' dname, err :\x3D ioutil.TempDir(\"\", \"sampledir\")\u000A fmt.Println(\"Temp dir name:\", dname)\u000A');codeLines.push(' defer os.RemoveAll(dname)\u000A');codeLines.push(' fname :\x3D filepath.Join(dname, \"file1\")\u000A err \x3D ioutil.WriteFile(fname, []byte{1, 2}, 0666)\u000A check(err)\u000A}\u000A');codeLines.push('');
|
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"fmt\"\u000A \"io/ioutil\"\u000A \"os\"\u000A \"path/filepath\"\u000A)\u000A');codeLines.push('func check(e error) {\u000A if e !\x3D nil {\u000A panic(e)\u000A }\u000A}\u000A');codeLines.push('func main() {\u000A');codeLines.push(' f, err :\x3D ioutil.TempFile(\"\", \"sample\")\u000A check(err)\u000A');codeLines.push(' fmt.Println(\"Temp file name:\", f.Name())\u000A');codeLines.push(' defer os.Remove(f.Name())\u000A');codeLines.push(' _, err \x3D f.Write([]byte{1, 2, 3, 4})\u000A check(err)\u000A');codeLines.push(' dname, err :\x3D ioutil.TempDir(\"\", \"sampledir\")\u000A check(err)\u000A fmt.Println(\"Temp dir name:\", dname)\u000A');codeLines.push(' defer os.RemoveAll(dname)\u000A');codeLines.push(' fname :\x3D filepath.Join(dname, \"file1\")\u000A err \x3D ioutil.WriteFile(fname, []byte{1, 2}, 0666)\u000A check(err)\u000A}\u000A');codeLines.push('');
|
||||||
</script>
|
</script>
|
||||||
<script src="site.js" async></script>
|
<script src="site.js" async></script>
|
||||||
</body>
|
</body>
|
||||||
|
6
public/writing-files
generated
6
public/writing-files
generated
@ -42,7 +42,7 @@ ones we saw earlier for reading.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
<a href="http://play.golang.org/p/8kx-qYUXBpA"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
<a href="http://play.golang.org/p/fQ7sd4gXv0F"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -162,6 +162,7 @@ after opening a file.</p>
|
|||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">n3</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">WriteString</span><span class="p">(</span><span class="s">"writes\n"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">n3</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">WriteString</span><span class="p">(</span><span class="s">"writes\n"</span><span class="p">)</span>
|
||||||
|
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n3</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n3</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -191,6 +192,7 @@ to the buffered readers we saw earlier.</p>
|
|||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">w</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nx">NewWriter</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">w</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nx">NewWriter</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||||
<span class="nx">n4</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">w</span><span class="p">.</span><span class="nx">WriteString</span><span class="p">(</span><span class="s">"buffered\n"</span><span class="p">)</span>
|
<span class="nx">n4</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">w</span><span class="p">.</span><span class="nx">WriteString</span><span class="p">(</span><span class="s">"buffered\n"</span><span class="p">)</span>
|
||||||
|
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n4</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n4</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -287,7 +289,7 @@ we’ve just seen to the <code>stdin</code> and <code>stdout</code> streams.
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var codeLines = [];
|
var codeLines = [];
|
||||||
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"bufio\"\u000A \"fmt\"\u000A \"io/ioutil\"\u000A \"os\"\u000A)\u000A');codeLines.push('func check(e error) {\u000A if e !\x3D nil {\u000A panic(e)\u000A }\u000A}\u000A');codeLines.push('func main() {\u000A');codeLines.push(' d1 :\x3D []byte(\"hello\\ngo\\n\")\u000A err :\x3D ioutil.WriteFile(\"/tmp/dat1\", d1, 0644)\u000A check(err)\u000A');codeLines.push(' f, err :\x3D os.Create(\"/tmp/dat2\")\u000A check(err)\u000A');codeLines.push(' defer f.Close()\u000A');codeLines.push(' d2 :\x3D []byte{115, 111, 109, 101, 10}\u000A n2, err :\x3D f.Write(d2)\u000A check(err)\u000A fmt.Printf(\"wrote %d bytes\\n\", n2)\u000A');codeLines.push(' n3, err :\x3D f.WriteString(\"writes\\n\")\u000A fmt.Printf(\"wrote %d bytes\\n\", n3)\u000A');codeLines.push(' f.Sync()\u000A');codeLines.push(' w :\x3D bufio.NewWriter(f)\u000A n4, err :\x3D w.WriteString(\"buffered\\n\")\u000A fmt.Printf(\"wrote %d bytes\\n\", n4)\u000A');codeLines.push(' w.Flush()\u000A');codeLines.push('}\u000A');codeLines.push('');codeLines.push('');codeLines.push('');
|
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"bufio\"\u000A \"fmt\"\u000A \"io/ioutil\"\u000A \"os\"\u000A)\u000A');codeLines.push('func check(e error) {\u000A if e !\x3D nil {\u000A panic(e)\u000A }\u000A}\u000A');codeLines.push('func main() {\u000A');codeLines.push(' d1 :\x3D []byte(\"hello\\ngo\\n\")\u000A err :\x3D ioutil.WriteFile(\"/tmp/dat1\", d1, 0644)\u000A check(err)\u000A');codeLines.push(' f, err :\x3D os.Create(\"/tmp/dat2\")\u000A check(err)\u000A');codeLines.push(' defer f.Close()\u000A');codeLines.push(' d2 :\x3D []byte{115, 111, 109, 101, 10}\u000A n2, err :\x3D f.Write(d2)\u000A check(err)\u000A fmt.Printf(\"wrote %d bytes\\n\", n2)\u000A');codeLines.push(' n3, err :\x3D f.WriteString(\"writes\\n\")\u000A check(err)\u000A fmt.Printf(\"wrote %d bytes\\n\", n3)\u000A');codeLines.push(' f.Sync()\u000A');codeLines.push(' w :\x3D bufio.NewWriter(f)\u000A n4, err :\x3D w.WriteString(\"buffered\\n\")\u000A check(err)\u000A fmt.Printf(\"wrote %d bytes\\n\", n4)\u000A');codeLines.push(' w.Flush()\u000A');codeLines.push('}\u000A');codeLines.push('');codeLines.push('');codeLines.push('');
|
||||||
</script>
|
</script>
|
||||||
<script src="site.js" async></script>
|
<script src="site.js" async></script>
|
||||||
</body>
|
</body>
|
||||||
|
@ -153,11 +153,10 @@ func resetURLHashFile(codehash, code, sourcePath string) string {
|
|||||||
}
|
}
|
||||||
payload := strings.NewReader(code)
|
payload := strings.NewReader(code)
|
||||||
resp, err := http.Post("https://play.golang.org/share", "text/plain", payload)
|
resp, err := http.Post("https://play.golang.org/share", "text/plain", payload)
|
||||||
if err != nil {
|
check(err)
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
body, err := ioutil.ReadAll(resp.Body)
|
||||||
|
check(err)
|
||||||
urlkey := string(body)
|
urlkey := string(body)
|
||||||
data := fmt.Sprintf("%s\n%s\n", codehash, urlkey)
|
data := fmt.Sprintf("%s\n%s\n", codehash, urlkey)
|
||||||
ioutil.WriteFile(sourcePath, []byte(data), 0644)
|
ioutil.WriteFile(sourcePath, []byte(data), 0644)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user